2024-07-26 13:46:05 +02:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2024-10-28 14:58:11 +01:00
|
|
|
"fmt"
|
2024-07-26 13:46:05 +02:00
|
|
|
"oc-auth/conf"
|
2024-10-28 14:58:11 +01:00
|
|
|
"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"
|
2024-10-28 14:58:11 +01:00
|
|
|
"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
|
|
|
|
2024-10-28 14:58:11 +01: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
|
|
|
|
2024-10-28 14:58:11 +01: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()
|
2024-10-28 14:58:11 +01:00
|
|
|
}
|
|
|
|
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
|
|
|
}
|