2014-02-26 50 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”
相关问题