mirror of
https://github.com/wso2/open-mcp-auth-proxy.git
synced 2025-06-28 01:23:30 +00:00
45 lines
No EOL
1.4 KiB
Go
45 lines
No EOL
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/wso2/open-mcp-auth-proxy/internal/authz"
|
|
"github.com/wso2/open-mcp-auth-proxy/internal/config"
|
|
"github.com/wso2/open-mcp-auth-proxy/internal/constants"
|
|
)
|
|
|
|
func MakeProvider(cfg *config.Config, demoMode, asgardeoMode bool) authz.Provider {
|
|
var mode, orgName string
|
|
switch {
|
|
case demoMode:
|
|
mode = "demo"
|
|
orgName = cfg.Demo.OrgName
|
|
case asgardeoMode:
|
|
mode = "asgardeo"
|
|
orgName = cfg.Asgardeo.OrgName
|
|
default:
|
|
mode = "default"
|
|
}
|
|
cfg.Mode = mode
|
|
|
|
switch mode {
|
|
case "demo", "asgardeo":
|
|
if len(cfg.AuthorizationServers) == 0 && cfg.JwksURI == "" {
|
|
base := constants.ASGARDEO_BASE_URL + orgName + "/oauth2"
|
|
cfg.AuthServerBaseURL = base
|
|
cfg.JWKSURL = base + "/jwks"
|
|
} else {
|
|
cfg.AuthServerBaseURL = cfg.AuthorizationServers[0]
|
|
cfg.JWKSURL = cfg.JwksURI
|
|
}
|
|
return authz.NewAsgardeoProvider(cfg)
|
|
|
|
default:
|
|
if cfg.Default.BaseURL != "" && cfg.Default.JWKSURL != "" {
|
|
cfg.AuthServerBaseURL = cfg.Default.BaseURL
|
|
cfg.JWKSURL = cfg.Default.JWKSURL
|
|
} else if len(cfg.AuthorizationServers) > 0 {
|
|
cfg.AuthServerBaseURL = cfg.AuthorizationServers[0]
|
|
cfg.JWKSURL = cfg.JwksURI
|
|
}
|
|
return authz.NewDefaultProvider(cfg)
|
|
}
|
|
} |