mirror of
https://github.com/alibaba/higress.git
synced 2026-04-22 04:27:26 +08:00
move oidcHandler from global to pluginconfig (#1601)
This commit is contained in:
@@ -29,10 +29,9 @@ func main() {
|
||||
)
|
||||
}
|
||||
|
||||
var oidcHandler *oidc.OAuthProxy
|
||||
|
||||
type PluginConfig struct {
|
||||
options *options.Options
|
||||
oidcHandler *oidc.OAuthProxy
|
||||
options *options.Options
|
||||
}
|
||||
|
||||
// 在控制台插件配置中填写的yaml配置会自动转换为json,此处直接从json这个参数里解析配置即可
|
||||
@@ -45,19 +44,19 @@ func parseConfig(json gjson.Result, config *PluginConfig, log wrapper.Log) error
|
||||
opts.Providers[0].Scope = strings.Replace(opts.Providers[0].Scope, ";", " ", -1)
|
||||
config.options = opts
|
||||
|
||||
oidcHandler, err = oidc.NewOAuthProxy(opts)
|
||||
config.oidcHandler, err = oidc.NewOAuthProxy(opts)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
wrapper.RegisteTickFunc(opts.VerifierInterval.Milliseconds(), func() {
|
||||
oidcHandler.SetVerifier(opts)
|
||||
config.oidcHandler.SetVerifier(opts)
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
func onHttpRequestHeaders(ctx wrapper.HttpContext, config PluginConfig, log wrapper.Log) types.Action {
|
||||
oidcHandler.SetContext(ctx)
|
||||
config.oidcHandler.SetContext(ctx)
|
||||
req := getHttpRequest()
|
||||
rw := util.NewRecorder()
|
||||
if options.IsAllowedByMode(req.URL.Host, req.URL.Path, config.options.MatchRules, config.options.ProxyPrefix) {
|
||||
@@ -66,12 +65,12 @@ func onHttpRequestHeaders(ctx wrapper.HttpContext, config PluginConfig, log wrap
|
||||
}
|
||||
|
||||
// TODO: remove this verifier after envoy support send request during parseConfig
|
||||
if err := oidcHandler.ValidateVerifier(); err != nil {
|
||||
if err := config.oidcHandler.ValidateVerifier(); err != nil {
|
||||
log.Critical(err.Error())
|
||||
return types.ActionContinue
|
||||
}
|
||||
|
||||
oidcHandler.ServeHTTP(rw, req)
|
||||
config.oidcHandler.ServeHTTP(rw, req)
|
||||
if code := rw.GetStatus(); code != 0 {
|
||||
return types.ActionContinue
|
||||
}
|
||||
@@ -83,7 +82,7 @@ func onHttpResponseHeaders(ctx wrapper.HttpContext, config PluginConfig, log wra
|
||||
if value != nil {
|
||||
proxywasm.AddHttpResponseHeader(oidc.SetCookieHeader, value.(string))
|
||||
}
|
||||
oidcHandler.SetContext(nil)
|
||||
config.oidcHandler.SetContext(nil)
|
||||
return types.ActionContinue
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user