@ -45,15 +45,15 @@ type Oauther struct {
}
var (
AppVer string
AppName string
AppLogo string
AppUrl string
IsProd Mode bool
Domain string
SecretKey string
RunUser string
LdapAuth bool
AppVer string
AppName string
AppLogo string
AppUrl string
Offline Mode bool
ProdMode bool
Domain string
SecretKey string
RunUser string
RepoRootPath string
ScriptType string
@ -93,6 +93,7 @@ var Service struct {
NotifyMail bool
ActiveCodeLives int
ResetPwdCodeLives int
LdapAuth bool
}
func ExecDir ( ) ( string , error ) {
@ -178,6 +179,36 @@ func newLogService() {
log . Info ( "Log Mode: %s(%s)" , strings . Title ( LogMode ) , levelName )
}
func newLdapService ( ) {
Service . LdapAuth = Cfg . MustBool ( "security" , "LDAP_AUTH" , false )
if ! Service . LdapAuth {
return
}
nbsrc := 0
for _ , v := range Cfg . GetSectionList ( ) {
if matched , _ := regexp . MatchString ( "(?i)^LDAPSOURCE.*" , v ) ; matched {
ldapname := Cfg . MustValue ( v , "name" , v )
ldaphost := Cfg . MustValue ( v , "host" )
ldapport := Cfg . MustInt ( v , "port" , 389 )
ldapbasedn := Cfg . MustValue ( v , "basedn" , "dc=*,dc=*" )
ldapattribute := Cfg . MustValue ( v , "attribute" , "mail" )
ldapfilter := Cfg . MustValue ( v , "filter" , "(*)" )
ldapmsadsaformat := Cfg . MustValue ( v , "MSADSAFORMAT" , "%s" )
ldap . AddSource ( ldapname , ldaphost , ldapport , ldapbasedn , ldapattribute , ldapfilter , ldapmsadsaformat )
nbsrc ++
log . Debug ( "%s added as LDAP source" , ldapname )
}
}
if nbsrc == 0 {
log . Warn ( "No valide LDAP found, LDAP Authentication NOT enabled" )
Service . LdapAuth = false
return
}
log . Info ( "LDAP Authentication Enabled" )
}
func newCacheService ( ) {
CacheAdapter = Cfg . MustValue ( "cache" , "ADAPTER" , "memory" )
if EnableRedis {
@ -295,6 +326,7 @@ func NewConfigContext() {
AppLogo = Cfg . MustValue ( "" , "APP_LOGO" , "img/favicon.png" )
AppUrl = Cfg . MustValue ( "server" , "ROOT_URL" )
Domain = Cfg . MustValue ( "server" , "DOMAIN" )
OfflineMode = Cfg . MustBool ( "server" , "OFFLINE_MODE" , false )
SecretKey = Cfg . MustValue ( "security" , "SECRET_KEY" )
InstallLock = Cfg . MustBool ( "security" , "INSTALL_LOCK" , false )
@ -312,34 +344,6 @@ func NewConfigContext() {
LogInRememberDays = Cfg . MustInt ( "security" , "LOGIN_REMEMBER_DAYS" )
CookieUserName = Cfg . MustValue ( "security" , "COOKIE_USERNAME" )
CookieRememberName = Cfg . MustValue ( "security" , "COOKIE_REMEMBER_NAME" )
// load LDAP authentication configuration if present
LdapAuth = Cfg . MustBool ( "security" , "LDAP_AUTH" , false )
if LdapAuth {
qlog . Debug ( "LDAP AUTHENTICATION activated" )
nbsrc := 0
for _ , v := range Cfg . GetSectionList ( ) {
if matched , _ := regexp . MatchString ( "(?i)^LDAPSOURCE.*" , v ) ; matched {
ldapname := Cfg . MustValue ( v , "name" , v )
ldaphost := Cfg . MustValue ( v , "host" )
ldapport := Cfg . MustInt ( v , "port" , 389 )
ldapbasedn := Cfg . MustValue ( v , "basedn" , "dc=*,dc=*" )
ldapattribute := Cfg . MustValue ( v , "attribute" , "mail" )
ldapfilter := Cfg . MustValue ( v , "filter" , "(*)" )
ldapmsadsaformat := Cfg . MustValue ( v , "MSADSAFORMAT" , "%s" )
ldap . AddSource ( ldapname , ldaphost , ldapport , ldapbasedn , ldapattribute , ldapfilter , ldapmsadsaformat )
nbsrc += 1
qlog . Debug ( "%s added as LDAP source" , ldapname )
}
}
if nbsrc == 0 {
qlog . Debug ( "No valide LDAP found, LDAP AUTHENTICATION NOT activated" )
LdapAuth = false
}
} else {
qlog . Debug ( "LDAP AUTHENTICATION NOT activated" )
}
PictureService = Cfg . MustValue ( "picture" , "SERVICE" )
// Determine and create root git reposiroty path.
@ -357,6 +361,7 @@ func NewConfigContext() {
func NewBaseServices ( ) {
newService ( )
newLogService ( )
newLdapService ( )
newCacheService ( )
newSessionService ( )
newMailService ( )