Kitex 自定義訪問控制

2022-04-27 09:35 更新

自定義訪問控制

Kitex 框架提供了一個簡單的中間件構(gòu)造器,可以支持用戶自定義訪問控制的邏輯,在特定條件下拒絕請求。下面是一個簡單的例子,隨機拒絕 1% 的請求:

package myaccesscontrol

import (
    "math/rand"
    "github.com/cloudwego/kitex/pkg/acl"
)

var errRejected = errors.New("1% rejected")

// 實現(xiàn)一個判斷函數(shù)
func reject1percent(ctx context.Context, request interface{}) (reason error) {
    if rand.Intn(100) == 0 {
        return errRejected // 拒絕請求時,需要返回一個錯誤
    }
    return nil
}

var MyMiddleware = acl.NewACLMiddleware(reject1percent) // 創(chuàng)建中間件

隨后,你可以在創(chuàng)建 client 或者 server 的時候,通過 WithMiddleware(myaccesscontrol.MyMiddleware) 啟用該中間件。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號