2014-02-26 86 views
1

我用DSQUERY對收到有關我在公元登錄信息,我收到了關於組的名字我所屬的信息。的Grails的Spring Security 2.0 Active Directory身份驗證使用用戶的組

-name

CN=Surname Name I,OU=CITY,OU=FOLDER,OU=Users,DC=domain,DC=com 

-group

CN=Name-of-Group Using Spaces, OU=Department ,OU=Folder_two,OU=Folder_one,OU=Groups,DC=domain,DC=com 

所以,我想使接受登錄只對我或誰在於我的用戶羣( CN =名稱 - 的 - 組使用空間 )。這是我的

Config.groovy 

grails.plugin.springsecurity.ldap.context.managerDn = 'Surname Name I,OU=CITY,OU=FOLDER,OU=Users,DC=domain,DC=com' 
grails.plugin.springsecurity.ldap.context.managerPassword = 'password' 
grails.plugin.springsecurity.ldap.context.server = 'ldap://server:xxx/' 
grails.plugin.springsecurity.ldap.authorities.ignorePartialResultException = true 
grails.plugin.springsecurity.ldap.search.base = 'DC=domain,DC=com' 
grails.plugin.springsecurity.ldap.search.filter="(&(sAMAccountName={0})(objectclass=user))" 
grails.plugin.springsecurity.successHandler.defaultTargetUrl = '/view/index' 
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 = [ 
    '/view/index':['IS_AUTHENTICATED_FULLY'] 
// '/view/index':['ROLE_Name-of-Group Using Spaces'] - this is what I tryed to use also and Its not working 
] 

這是工作配置,但問題是,任何來自域的用戶都有權訪問。

+0

您是否嘗試過'... ldap.search.base'的變體?另一個選擇是向所有控制器添加一個@Secured(['ROLE_Name-of-Group Using Spaces'])'註釋。但是,這仍然可以讓每個人都進行身份驗證。不在特定組中的用戶只能看到「被拒絕」頁面。 –

+0

使用'@ Secured'沒有幫助。我收到了''對不起,您無權查看此頁面。「'消息。另外,我嘗試在'ldap.search.base'中使用''使用空間的名稱組合'' - 這個解決方案也不起作用。 – lsv

回答

1

這裏是解決方案:只針對集團 「名稱-的組#1使用空間」 的成員, 「名稱-的組#2使用空間」

grails.plugin.springsecurity.ldap.context.managerDn = 'Surname Name I,OU=CITY,OU=FOLDER,OU=Users,DC=domain,DC=com' 
grails.plugin.springsecurity.ldap.context.managerPassword = 'password' 
grails.plugin.springsecurity.ldap.context.server = 'ldap://server:xxx/' 
grails.plugin.springsecurity.ldap.authorities.ignorePartialResultException = true 
grails.plugin.springsecurity.ldap.search.base = 'DC=domain,DC=com' 

grails.plugin.springsecurity.ldap.search.filter="(&(sAMAccountName={0})(|(memberOf=CN=Name-of-Group #1 Using Spaces, OU=Department ,OU=Folder_two,OU=Folder_one,OU=Groups,DC=domain,DC=com)(memberOf=CN=Name-of-Group #2 Using Spaces, OU=Department ,OU=Folder_two,OU=Folder_one,OU=Groups,DC=domain,DC=com)))" 

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()'] 
] 
  • 認證。不需要「%20」
相關問題