Release set paths for verification tokens
This commit is contained in:
parent
9252064de1
commit
06ca4f932d
103
example.yml
103
example.yml
|
@ -33,53 +33,56 @@
|
|||
# dirs:
|
||||
# - lib
|
||||
# - structs
|
||||
|
||||
security:
|
||||
uri: "localhost/sec/app"
|
||||
redirect: "localhost/sec"
|
||||
func: "test.sec_auth"
|
||||
rbac:
|
||||
roles:
|
||||
- name: SEC_ADMIN
|
||||
display: Администратор безопасности
|
||||
- name: APP_ADMIN
|
||||
display: Администратор приложения
|
||||
description: Роль применяется для администраторов приложения
|
||||
groups:
|
||||
- name: APP_ADMIN
|
||||
display: Администратор приложения
|
||||
roles:
|
||||
- name: APP_ADMIN
|
||||
- name: SEC_ADMIN
|
||||
roles:
|
||||
- name: SEC_ADMIN
|
||||
- name: APP_ADMIN
|
||||
access: deny
|
||||
display: Администратор безопасности
|
||||
description: Группа применяется для администраторов безопасности
|
||||
users:
|
||||
- login: app_admin
|
||||
password: app_admin
|
||||
email: test1@example.com
|
||||
roles:
|
||||
- name: APP_ADMIN
|
||||
- login: sec_admin
|
||||
password: sec_admin
|
||||
email: test2@example.com
|
||||
groups:
|
||||
- name: SEC_ADMIN
|
||||
params:
|
||||
- name: gateway.s3.endpoint
|
||||
value: "10.8.0.11:9900"
|
||||
- name: gateway.s3.accessKeyID
|
||||
value: "8yWig4ztLJhwETbe"
|
||||
- name: gateway.s3.secretAccessKey
|
||||
value: "j9iWGuuoBNMi14TmmdoglRBE1itn1JFx"
|
||||
- name: gateway.s3.bucket
|
||||
value: "yt-gateway"
|
||||
- name: gateway.s3.useSSL
|
||||
value: "false"
|
||||
- name: security.pwd.power
|
||||
value: "10"
|
||||
- name: security.pwd.jwt.secret
|
||||
value: "secret"
|
||||
token:
|
||||
- domain: yt.com
|
||||
paths:
|
||||
- /
|
||||
#security:
|
||||
# uri: "localhost/sec/app"
|
||||
# redirect: "localhost/sec"
|
||||
# func: "test.sec_auth"
|
||||
# rbac:
|
||||
# roles:
|
||||
# - name: SEC_ADMIN
|
||||
# display: Администратор безопасности
|
||||
# - name: APP_ADMIN
|
||||
# display: Администратор приложения
|
||||
# description: Роль применяется для администраторов приложения
|
||||
# groups:
|
||||
# - name: APP_ADMIN
|
||||
# display: Администратор приложения
|
||||
# roles:
|
||||
# - name: APP_ADMIN
|
||||
# - name: SEC_ADMIN
|
||||
# roles:
|
||||
# - name: SEC_ADMIN
|
||||
# - name: APP_ADMIN
|
||||
# access: deny
|
||||
# display: Администратор безопасности
|
||||
# description: Группа применяется для администраторов безопасности
|
||||
# users:
|
||||
# - login: app_admin
|
||||
# password: app_admin
|
||||
# email: test1@example.com
|
||||
# roles:
|
||||
# - name: APP_ADMIN
|
||||
# - login: sec_admin
|
||||
# password: sec_admin
|
||||
# email: test2@example.com
|
||||
# groups:
|
||||
# - name: SEC_ADMIN
|
||||
#params:
|
||||
# - name: gateway.s3.endpoint
|
||||
# value: "10.8.0.11:9900"
|
||||
# - name: gateway.s3.accessKeyID
|
||||
# value: "8yWig4ztLJhwETbe"
|
||||
# - name: gateway.s3.secretAccessKey
|
||||
# value: "j9iWGuuoBNMi14TmmdoglRBE1itn1JFx"
|
||||
# - name: gateway.s3.bucket
|
||||
# value: "yt-gateway"
|
||||
# - name: gateway.s3.useSSL
|
||||
# value: "false"
|
||||
# - name: security.pwd.power
|
||||
# value: "10"
|
||||
# - name: security.pwd.jwt.secret
|
||||
# value: "secret"
|
||||
|
|
|
@ -114,5 +114,13 @@ func ConfigUpload(filename string) {
|
|||
SecuritySet(forUpload.Security)
|
||||
}
|
||||
|
||||
//fmt.Println(forUpload)
|
||||
if len(forUpload.Tokens) > 0 {
|
||||
for _, tokens := range forUpload.Tokens {
|
||||
bar := progressbar.Default(int64(len(tokens.Paths)), fmt.Sprintf(`Tokens: %s`, tokens.Domain))
|
||||
for _, path := range tokens.Paths {
|
||||
SetToken(tokens.Domain, path)
|
||||
bar.Add(1)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,6 +32,9 @@ type Config struct {
|
|||
GatewayProxyAddr string
|
||||
|
||||
Method string
|
||||
|
||||
VerifyAccessToken bool
|
||||
VerifyAccessTokenPath string
|
||||
}
|
||||
|
||||
var AppConfig Config
|
||||
|
@ -136,6 +139,14 @@ func parseArgs(args []string) {
|
|||
} else {
|
||||
panic(fmt.Errorf("error count arguments for parameters file"))
|
||||
}
|
||||
case "--token":
|
||||
if len(args) > 1 {
|
||||
AppConfig.VerifyAccessToken = true
|
||||
AppConfig.VerifyAccessTokenPath = args[1]
|
||||
parseArgs(args[2:])
|
||||
} else {
|
||||
panic(fmt.Errorf("error count arguments for parameters file"))
|
||||
}
|
||||
default:
|
||||
parseArgs(args[1:])
|
||||
}
|
||||
|
@ -143,5 +154,26 @@ func parseArgs(args []string) {
|
|||
}
|
||||
|
||||
func PrintHelp() {
|
||||
fmt.Println(``)
|
||||
fmt.Println(`Установка различных параметров для разных частей системы.
|
||||
Использование:
|
||||
NATS_ADDR=nats://<addr> PROJECT=<name> MODULE=<name> ./yt-cli <args>
|
||||
где:
|
||||
NATS_ADDR - адрес менеджера очередей [nats://localhost:4222]
|
||||
PROJECT - название проекта, для которого применяются параметры [system]
|
||||
MODULE - модуль проекта, для которого применяются параметры [cli]
|
||||
|
||||
Аргументы:
|
||||
--help - это окно
|
||||
--list - список параметров
|
||||
--set <name> <value> - Установить параметр
|
||||
--get <name> - получить значение параметра
|
||||
--domain <name> - Доменное имя
|
||||
--function <name> <path> - установить функцию для указанного ройтинга
|
||||
--method <name> - метод, на который присваивается функция
|
||||
--proxy <path> <proxyAddr> - проксирование запроса на другой адрес по указанному пути
|
||||
--static-file <path> <file> - установка статичного файла по конкретному пути
|
||||
--static-dir <path> <dir> - установка статичных файлов с вложенными файлами по конкретному пути рекурсивно с вложениями
|
||||
--upload-settings <file> - файл настроек для массовой установки значений
|
||||
--token <path> - установить проверку JWT для указанного пути и его вложений
|
||||
`)
|
||||
}
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
package lib
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func SetToken(domain, gatewayPath string) {
|
||||
if domain == "" {
|
||||
panic(fmt.Errorf("domain name should be set"))
|
||||
}
|
||||
paths := map[string][]string{
|
||||
domain: {
|
||||
gatewayPath,
|
||||
},
|
||||
}
|
||||
var payload []byte
|
||||
var err error
|
||||
if payload, err = json.Marshal(paths); err != nil {
|
||||
panic(nil)
|
||||
}
|
||||
if _, _, err = client.Call("system.gateway.setVerifyAccess", nil, payload); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
2
main.go
2
main.go
|
@ -33,6 +33,8 @@ func main() {
|
|||
lib.GatewayStaticDirSet(lib.AppConfig.Domain, lib.AppConfig.Dirname, lib.AppConfig.GatewayPath)
|
||||
} else if lib.AppConfig.ParamFile {
|
||||
lib.ConfigUpload(lib.AppConfig.Filename)
|
||||
} else if lib.AppConfig.VerifyAccessToken {
|
||||
lib.SetToken(lib.AppConfig.Domain, lib.AppConfig.VerifyAccessTokenPath)
|
||||
} else {
|
||||
lib.PrintHelp()
|
||||
}
|
||||
|
|
|
@ -6,6 +6,12 @@ type ForUpload struct {
|
|||
Static []Static `json:"static,omitempty"`
|
||||
Security *Security `json:"security,omitempty"`
|
||||
Params []Param `json:"params,omitempty"`
|
||||
Tokens []Token `json:"token,omitempty"`
|
||||
}
|
||||
|
||||
type Token struct {
|
||||
Domain string `json:"domain"`
|
||||
Paths []string `json:"paths"`
|
||||
}
|
||||
|
||||
type Function struct {
|
||||
|
|
Loading…
Reference in New Issue