mirror of
https://github.com/openziti/zrok.git
synced 2025-02-23 05:31:10 +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) {
|
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 {
|
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{
|
options := &zrokEdgeSdk.FrontendOptions{
|
||||||
|
AuthScheme: params.Body.AuthScheme,
|
||||||
|
AuthUsers: authUsers,
|
||||||
|
OAuth: &sdk.OAuthConfig{
|
||||||
Provider: params.Body.OauthProvider,
|
Provider: params.Body.OauthProvider,
|
||||||
EmailDomains: params.Body.OauthEmailDomains,
|
EmailDomains: params.Body.OauthEmailDomains,
|
||||||
AuthorizationCheckInterval: params.Body.OauthAuthorizationCheckInterval,
|
AuthorizationCheckInterval: params.Body.OauthAuthorizationCheckInterval,
|
||||||
}, edge)
|
},
|
||||||
|
}
|
||||||
|
cfgZId, err := zrokEdgeSdk.CreateConfig(zrokProxyConfigId, envZId, shrToken, options, edge)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", nil, err
|
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) {
|
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 {
|
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{
|
options := &zrokEdgeSdk.FrontendOptions{
|
||||||
|
AuthScheme: params.Body.AuthScheme,
|
||||||
|
AuthUsers: authUsers,
|
||||||
|
OAuth: &sdk.OAuthConfig{
|
||||||
Provider: params.Body.OauthProvider,
|
Provider: params.Body.OauthProvider,
|
||||||
EmailDomains: params.Body.OauthEmailDomains,
|
EmailDomains: params.Body.OauthEmailDomains,
|
||||||
AuthorizationCheckInterval: params.Body.OauthAuthorizationCheckInterval,
|
AuthorizationCheckInterval: params.Body.OauthAuthorizationCheckInterval,
|
||||||
}, edge)
|
},
|
||||||
|
}
|
||||||
|
cfgId, err := zrokEdgeSdk.CreateConfig(zrokProxyConfigId, envZId, shrToken, options, edge)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", nil, err
|
return "", nil, err
|
||||||
}
|
}
|
||||||
|
@ -11,31 +11,31 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
type OauthOptions struct {
|
type FrontendOptions struct {
|
||||||
Provider string
|
AuthScheme string
|
||||||
EmailDomains []string
|
AuthUsers []*sdk.AuthUserConfig
|
||||||
AuthorizationCheckInterval string
|
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) {
|
func CreateConfig(cfgTypeZId, envZId, shrToken string, options *FrontendOptions, edge *rest_management_api_client.ZitiEdgeManagement) (cfgZId string, err error) {
|
||||||
authScheme, err := sdk.ParseAuthScheme(authSchemeStr)
|
authScheme, err := sdk.ParseAuthScheme(options.AuthScheme)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
cfg := &sdk.ProxyConfig{
|
cfg := &sdk.FrontendConfig{
|
||||||
AuthScheme: authScheme,
|
AuthScheme: authScheme,
|
||||||
}
|
}
|
||||||
if cfg.AuthScheme == sdk.Basic {
|
if cfg.AuthScheme == sdk.Basic {
|
||||||
cfg.BasicAuth = &sdk.BasicAuth{}
|
cfg.BasicAuth = &sdk.BasicAuthConfig{}
|
||||||
for _, authUser := range authUsers {
|
for _, authUser := range options.AuthUsers {
|
||||||
cfg.BasicAuth.Users = append(cfg.BasicAuth.Users, &sdk.AuthUser{Username: authUser.Username, Password: authUser.Password})
|
cfg.BasicAuth.Users = append(cfg.BasicAuth.Users, &sdk.AuthUserConfig{Username: authUser.Username, Password: authUser.Password})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if cfg.AuthScheme == sdk.Oauth && oauthOptions != nil {
|
if cfg.AuthScheme == sdk.Oauth && options.OAuth != nil {
|
||||||
cfg.OauthAuth = &sdk.OauthAuth{
|
cfg.OAuthAuth = &sdk.OAuthConfig{
|
||||||
Provider: oauthOptions.Provider,
|
Provider: options.OAuth.Provider,
|
||||||
EmailDomains: oauthOptions.EmailDomains,
|
EmailDomains: options.OAuth.EmailDomains,
|
||||||
AuthorizationCheckInterval: oauthOptions.AuthorizationCheckInterval,
|
AuthorizationCheckInterval: options.OAuth.AuthorizationCheckInterval,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cfgCrt := &rest_model.ConfigCreate{
|
cfgCrt := &rest_model.ConfigCreate{
|
||||||
|
@ -4,22 +4,22 @@ import "github.com/pkg/errors"
|
|||||||
|
|
||||||
const ZrokProxyConfig = "zrok.proxy.v1"
|
const ZrokProxyConfig = "zrok.proxy.v1"
|
||||||
|
|
||||||
type ProxyConfig struct {
|
type FrontendConfig struct {
|
||||||
AuthScheme AuthScheme `json:"auth_scheme"`
|
AuthScheme AuthScheme `json:"auth_scheme"`
|
||||||
BasicAuth *BasicAuth `json:"basic_auth"`
|
BasicAuth *BasicAuthConfig `json:"basic_auth"`
|
||||||
OauthAuth *OauthAuth `json:"oauth"`
|
OAuthAuth *OAuthConfig `json:"oauth"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type BasicAuth struct {
|
type BasicAuthConfig struct {
|
||||||
Users []*AuthUser `json:"users"`
|
Users []*AuthUserConfig `json:"users"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type AuthUser struct {
|
type AuthUserConfig struct {
|
||||||
Username string `json:"username"`
|
Username string `json:"username"`
|
||||||
Password string `json:"password"`
|
Password string `json:"password"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type OauthAuth struct {
|
type OAuthConfig struct {
|
||||||
Provider string `json:"provider"`
|
Provider string `json:"provider"`
|
||||||
EmailDomains []string `json:"email_domains"`
|
EmailDomains []string `json:"email_domains"`
|
||||||
AuthorizationCheckInterval string `json:"authorization_check_interval"`
|
AuthorizationCheckInterval string `json:"authorization_check_interval"`
|
||||||
|
Loading…
Reference in New Issue
Block a user