2014-09-17 4 views
-2

내 config.groovy에서 springsecurity 플러그인을 사용하는 LDAP 인증을위한 코드가 있습니다.Grails springsecurity ldap 로그 된 사용자 이름 표시

grails.plugin.springsecurity.ldap.context.managerDn = CN=user,OU=Accounts,OU=Users,DC=organization,DC=com' 
grails.plugin.springsecurity.ldap.context.managerPassword = 'password' 
grails.plugin.springsecurity.ldap.context.server = 'ldap://ldapserver.com:389/' 
grails.plugin.springsecurity.ldap.authorities.ignorePartialResultException = true // typically needed for Active Directory 
grails.plugin.springsecurity.ldap.search.base = 'DC=organization,DC=com' 
grails.plugin.springsecurity.ldap.search.filter="(&(sAMAccountName={0})(|(memberOf=...)(memberOf=...)(memberOf=...)))" 
grails.plugin.springsecurity.ldap.search.searchSubtree = true 
grails.plugin.springsecurity.ldap.auth.hideUserNotFoundExceptions = false 
grails.plugin.springsecurity.providerNames=['ldapAuthProvider'] 
grails.plugin.springsecurity.securityConfigType = "Annotation" 
grails.plugin.springsecurity.controllerAnnotations.staticRules = [ 
    '/**': ['isFullyAuthenticated()'] 
] 

괜찮 았지만 이제는 기본 페이지에 기록 된 사용자 이름과 기록 된 사용자 중 일부 작업을 수행해야합니다. 내가 어떻게 할 수 있니?

답변

2

<sec:username/>을 사용해 보셨습니까?

표시가 된 UserDetails 사용자 이름 필드의 값에 로그인하면 사용자 이름.

<sec:ifLoggedIn> 
    Welcome Back <sec:username/>! 
</sec:ifLoggedIn> 
<sec:ifNotLoggedIn> 
    <g:link controller='login' action='auth'>Login</g:link> 
</sec:ifNotLoggedIn> 
+2

이 링크는 대답에 필수적인 부분을 포함시키고 참조 용 링크를 제공하는 것이 더 낫습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. –

+1

@theghostofc 고마워, 거기에있는 문서에서 견적을 추가했습니다. 아직 질문은 매우 모호합니다. 그래서 나는 그것에 많은 집중을하고 싶지 않았습니다;) – cfrick

+0

위대한 해결책! 도움이됩니다! – lsv

1

난 당신이 서비스 또는 컨트롤러의 이름을 얻으려면, 당신은 사용해야합니다 :

def springSecurityService 

def someActionOrMethod(){ 
    println springSecurityService.currentUser.username 
} 
관련 문제