oc-auth/main.go

61 lines
2.2 KiB
Go
Raw Normal View History

2024-07-26 13:46:05 +02:00
package main
import (
"fmt"
2024-07-26 13:46:05 +02:00
"oc-auth/conf"
"oc-auth/infrastructure"
2024-07-26 13:46:05 +02:00
_ "oc-auth/routers"
2024-09-27 09:20:59 +02:00
oclib "cloud.o-forge.io/core/oc-lib"
"cloud.o-forge.io/core/oc-lib/tools"
2024-07-26 13:46:05 +02:00
beego "github.com/beego/beego/v2/server/web"
)
2024-09-27 09:20:59 +02:00
const appname = "oc-auth"
2024-07-26 13:46:05 +02:00
// @securityDefinitions.apikey Bearer
// @in header
// @name Authorization
// @description Type "Bearer" followed by a space and JWT token.
2024-07-26 13:46:05 +02:00
func main() {
2024-09-27 09:20:59 +02:00
// Init the oc-lib
oclib.Init(appname)
// Load the right config file
o := oclib.GetConfLoader()
2024-07-26 13:46:05 +02:00
conf.GetConfig().PVKPath = o.GetStringDefault("PVK_PATH", "./pvk.pem")
conf.GetConfig().ClientSecret = o.GetStringDefault("CLIENT_SECRET", "oc-auth-got-secret")
conf.GetConfig().Auth = o.GetStringDefault("AUTH", "hydra")
conf.GetConfig().AuthConnectorHost = o.GetStringDefault("AUTH_CONNECTOR_HOST", "localhost")
conf.GetConfig().AuthConnectorPort = o.GetIntDefault("AUTH_CONNECTOR_PORT", 4444)
conf.GetConfig().AuthConnectorAdminPort = o.GetIntDefault("AUTH_CONNECTOR_ADMIN_PORT", 4445)
conf.GetConfig().PermissionConnectorHost = o.GetStringDefault("PERMISSION_CONNECTOR_HOST", "keto")
conf.GetConfig().PermissionConnectorPort = o.GetIntDefault("PERMISSION_CONNECTOR_PORT", 4466)
conf.GetConfig().PermissionConnectorAdminPort = o.GetIntDefault("PERMISSION_CONNECTOR_ADMIN_PORT", 4467)
// config LDAP
conf.GetConfig().LDAPEndpoints = o.GetStringDefault("LDAP_ENDPOINTS", "ldap:389")
conf.GetConfig().LDAPBindDN = o.GetStringDefault("LDAP_BINDDN", "cn=admin,dc=example,dc=com")
conf.GetConfig().LDAPBindPW = o.GetStringDefault("LDAP_BINDPW", "password")
conf.GetConfig().LDAPBaseDN = o.GetStringDefault("LDAP_BASEDN", "dc=example,dc=com")
conf.GetConfig().LDAPRoleBaseDN = o.GetStringDefault("LDAP_ROLE_BASEDN", "ou=AppRoles,dc=example,dc=com")
Discovery()
2024-07-26 13:46:05 +02:00
beego.Run()
}
func Discovery() {
fmt.Println("Discovered")
api := tools.API{}
addPermissions := func(m map[string]interface{}) {
conn := infrastructure.GetPermissionConnector()
for k, v := range m {
for _, p := range v.([]interface{}) {
conn.CreatePermission(k, p.(string), true)
}
}
}
api.ListenRouter(addPermissions)
tools.NewNATSCaller().SetNATSPub("api", tools.DISCOVERY, map[string]interface{}{})
2024-07-26 13:46:05 +02:00
}