@ -49,11 +49,11 @@ var (
AppName string
AppLogo string
AppUrl string
IsProdMode bool
OfflineMode bool
ProdMode bool
Domain string
SecretKey string
RunUser string
LdapAuth bool
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 ( )