91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Kong serverless插件怎么用

發布時間:2021-12-16 12:00:42 來源:億速云 閱讀:236 作者:柒染 欄目:云計算

這篇文章將為大家詳細講解有關Kong serverless插件怎么用,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

概述

kong的serverless插件可以在請求的生命周期內,動態執行lua代碼。

例子一

下面來看一個刪除請求url中的jsessionid的例子。

現在請求中有如下url導致后端服務報錯:pc/courses/jcqzf9dc;jsessionid=94DB14C127698FCAFEA6599AEE93C252/last-chapter。 url中出現jsessionid是因為在瀏覽器不支持cookie的情況下,tomcat的url重寫。其實就算url中帶有;jsessionid=xxxxx,在tomcat,spring boot的架構下是沒有什么問題的,但是后端框架中使用了spring security,spring security有一些安全的要求,默認情況下是不允許url中帶sessionid來維持會話的,錯誤消息為:The request was rejected because the URL contained a potentially malicious String ";"。由于后端服務是無狀態,使用jwt來鑒權,根本不需要cookie與session,此sessionid可能是老的認證服務導致。

暫時無法找到原因,出錯的服務由網關代理,作為一個網關,改寫請求是再平常不過之功能。通常現有的插件只提供增刪改query 參數,header,body等簡單功能,對于上述情況則無能為力。通過serverless插件動態執行自己的代碼,在access階段使用如下代碼:

    local url = ngx.var.upstream_uri;
    local sessionLength = 32;
    local start, last = string.find(url, ";jsessionid=");
    if start ~= nil then
        local newUrl = string.sub(url, 0, start - 1) .. string.sub(url, last + 1 + sessionLength);
        kong.log.err("刪除url jsessionid,原始url:", url, "修改后:", newUrl);
        ngx.var.upstream_uri = newUrl;
    end

無論jsessionid出現在url中的什么位置,把它刪除掉,然后修改upstream_uri。access階段是在匹配到路由之后,在轉發給上游服務之前,此時匹配路由的前綴已經刪除掉,要修改轉發給上游服務的url就是修改ngx.var.upstream_uri這個變量的值。雖然lua代碼不需要分號結尾,但是要當做一段代碼在serverless中執行,必須加分號。在pre-function插件中的access階段粘貼上述代碼,即可快速,有效,無更新的暫時解決上述問題。

Kong serverless插件怎么用

例子二

無后端的授時服務。

假設需要網關提供一個接口來獲取當前的時間戳。access階段是匹配到路由后,轉發給上游服務處理前。使用serverless插件,在access階段填寫如下代碼:

return kong.response.exit(200,{timestamp=os.time()})

配置一個service,此service地址可以隨便寫,因為請求根本不會轉發給這個地址,在access階段就返回響應了。再配置路由地址為/time,即可實現返回當前時間戳。

關于Kong serverless插件怎么用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

镇雄县| 绍兴市| 玉田县| 桐乡市| 吉林省| 蒙自县| 莱西市| 嵊泗县| 通渭县| 昌图县| 芷江| 惠安县| 新竹县| 清流县| 雷山县| 南投市| 普陀区| 蓝山县| 普宁市| 双柏县| 新疆| 浦县| 甘孜县| 丹巴县| 泰顺县| 长垣县| 福清市| 河西区| 隆化县| 鹤庆县| 鹰潭市| 富平县| 宜丰县| 旬阳县| 姜堰市| 尉犁县| 南康市| 奎屯市| 平定县| 漯河市| 阳新县|