mirror of
https://github.com/openziti/zrok.git
synced 2025-02-22 05:01:01 +01:00
reworking of zrok.proxy.v1 and associated config mapping (#404)
This commit is contained in:
parent
fe69a8094b
commit
ceee205239
@ -14,15 +14,20 @@ func newPrivateResourceAllocator() *privateResourceAllocator {
|
||||
}
|
||||
|
||||
func (a *privateResourceAllocator) allocate(envZId, shrToken string, params share.ShareParams, edge *rest_management_api_client.ZitiEdgeManagement) (shrZId string, frontendEndpoints []string, err error) {
|
||||
var authUsers []*sdk.AuthUser
|
||||
var authUsers []*sdk.AuthUserConfig
|
||||
for _, authUser := range params.Body.AuthUsers {
|
||||
authUsers = append(authUsers, &sdk.AuthUser{authUser.Username, authUser.Password})
|
||||
authUsers = append(authUsers, &sdk.AuthUserConfig{Username: authUser.Username, Password: authUser.Password})
|
||||
}
|
||||
cfgZId, err := zrokEdgeSdk.CreateConfig(zrokProxyConfigId, envZId, shrToken, params.Body.AuthScheme, authUsers, &zrokEdgeSdk.OauthOptions{
|
||||
Provider: params.Body.OauthProvider,
|
||||
EmailDomains: params.Body.OauthEmailDomains,
|
||||
AuthorizationCheckInterval: params.Body.OauthAuthorizationCheckInterval,
|
||||
}, edge)
|
||||
options := &zrokEdgeSdk.FrontendOptions{
|
||||
AuthScheme: params.Body.AuthScheme,
|
||||
AuthUsers: authUsers,
|
||||
OAuth: &sdk.OAuthConfig{
|
||||
Provider: params.Body.OauthProvider,
|
||||
EmailDomains: params.Body.OauthEmailDomains,
|
||||
AuthorizationCheckInterval: params.Body.OauthAuthorizationCheckInterval,
|
||||
},
|
||||
}
|
||||
cfgZId, err := zrokEdgeSdk.CreateConfig(zrokProxyConfigId, envZId, shrToken, options, edge)
|
||||
if err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
|
@ -14,15 +14,20 @@ func newPublicResourceAllocator() *publicResourceAllocator {
|
||||
}
|
||||
|
||||
func (a *publicResourceAllocator) allocate(envZId, shrToken string, frontendZIds, frontendTemplates []string, params share.ShareParams, edge *rest_management_api_client.ZitiEdgeManagement) (shrZId string, frontendEndpoints []string, err error) {
|
||||
var authUsers []*sdk.AuthUser
|
||||
var authUsers []*sdk.AuthUserConfig
|
||||
for _, authUser := range params.Body.AuthUsers {
|
||||
authUsers = append(authUsers, &sdk.AuthUser{authUser.Username, authUser.Password})
|
||||
authUsers = append(authUsers, &sdk.AuthUserConfig{Username: authUser.Username, Password: authUser.Password})
|
||||
}
|
||||
cfgId, err := zrokEdgeSdk.CreateConfig(zrokProxyConfigId, envZId, shrToken, params.Body.AuthScheme, authUsers, &zrokEdgeSdk.OauthOptions{
|
||||
Provider: params.Body.OauthProvider,
|
||||
EmailDomains: params.Body.OauthEmailDomains,
|
||||
AuthorizationCheckInterval: params.Body.OauthAuthorizationCheckInterval,
|
||||
}, edge)
|
||||
options := &zrokEdgeSdk.FrontendOptions{
|
||||
AuthScheme: params.Body.AuthScheme,
|
||||
AuthUsers: authUsers,
|
||||
OAuth: &sdk.OAuthConfig{
|
||||
Provider: params.Body.OauthProvider,
|
||||
EmailDomains: params.Body.OauthEmailDomains,
|
||||
AuthorizationCheckInterval: params.Body.OauthAuthorizationCheckInterval,
|
||||
},
|
||||
}
|
||||
cfgId, err := zrokEdgeSdk.CreateConfig(zrokProxyConfigId, envZId, shrToken, options, edge)
|
||||
if err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
|
@ -11,31 +11,31 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
type OauthOptions struct {
|
||||
Provider string
|
||||
EmailDomains []string
|
||||
AuthorizationCheckInterval string
|
||||
type FrontendOptions struct {
|
||||
AuthScheme string
|
||||
AuthUsers []*sdk.AuthUserConfig
|
||||
OAuth *sdk.OAuthConfig
|
||||
}
|
||||
|
||||
func CreateConfig(cfgTypeZId, envZId, shrToken string, authSchemeStr string, authUsers []*sdk.AuthUser, oauthOptions *OauthOptions, edge *rest_management_api_client.ZitiEdgeManagement) (cfgZId string, err error) {
|
||||
authScheme, err := sdk.ParseAuthScheme(authSchemeStr)
|
||||
func CreateConfig(cfgTypeZId, envZId, shrToken string, options *FrontendOptions, edge *rest_management_api_client.ZitiEdgeManagement) (cfgZId string, err error) {
|
||||
authScheme, err := sdk.ParseAuthScheme(options.AuthScheme)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
cfg := &sdk.ProxyConfig{
|
||||
cfg := &sdk.FrontendConfig{
|
||||
AuthScheme: authScheme,
|
||||
}
|
||||
if cfg.AuthScheme == sdk.Basic {
|
||||
cfg.BasicAuth = &sdk.BasicAuth{}
|
||||
for _, authUser := range authUsers {
|
||||
cfg.BasicAuth.Users = append(cfg.BasicAuth.Users, &sdk.AuthUser{Username: authUser.Username, Password: authUser.Password})
|
||||
cfg.BasicAuth = &sdk.BasicAuthConfig{}
|
||||
for _, authUser := range options.AuthUsers {
|
||||
cfg.BasicAuth.Users = append(cfg.BasicAuth.Users, &sdk.AuthUserConfig{Username: authUser.Username, Password: authUser.Password})
|
||||
}
|
||||
}
|
||||
if cfg.AuthScheme == sdk.Oauth && oauthOptions != nil {
|
||||
cfg.OauthAuth = &sdk.OauthAuth{
|
||||
Provider: oauthOptions.Provider,
|
||||
EmailDomains: oauthOptions.EmailDomains,
|
||||
AuthorizationCheckInterval: oauthOptions.AuthorizationCheckInterval,
|
||||
if cfg.AuthScheme == sdk.Oauth && options.OAuth != nil {
|
||||
cfg.OAuthAuth = &sdk.OAuthConfig{
|
||||
Provider: options.OAuth.Provider,
|
||||
EmailDomains: options.OAuth.EmailDomains,
|
||||
AuthorizationCheckInterval: options.OAuth.AuthorizationCheckInterval,
|
||||
}
|
||||
}
|
||||
cfgCrt := &rest_model.ConfigCreate{
|
||||
|
@ -4,22 +4,22 @@ import "github.com/pkg/errors"
|
||||
|
||||
const ZrokProxyConfig = "zrok.proxy.v1"
|
||||
|
||||
type ProxyConfig struct {
|
||||
AuthScheme AuthScheme `json:"auth_scheme"`
|
||||
BasicAuth *BasicAuth `json:"basic_auth"`
|
||||
OauthAuth *OauthAuth `json:"oauth"`
|
||||
type FrontendConfig struct {
|
||||
AuthScheme AuthScheme `json:"auth_scheme"`
|
||||
BasicAuth *BasicAuthConfig `json:"basic_auth"`
|
||||
OAuthAuth *OAuthConfig `json:"oauth"`
|
||||
}
|
||||
|
||||
type BasicAuth struct {
|
||||
Users []*AuthUser `json:"users"`
|
||||
type BasicAuthConfig struct {
|
||||
Users []*AuthUserConfig `json:"users"`
|
||||
}
|
||||
|
||||
type AuthUser struct {
|
||||
type AuthUserConfig struct {
|
||||
Username string `json:"username"`
|
||||
Password string `json:"password"`
|
||||
}
|
||||
|
||||
type OauthAuth struct {
|
||||
type OAuthConfig struct {
|
||||
Provider string `json:"provider"`
|
||||
EmailDomains []string `json:"email_domains"`
|
||||
AuthorizationCheckInterval string `json:"authorization_check_interval"`
|
||||
|
Loading…
Reference in New Issue
Block a user