【发布时间】:2014-02-26 13:22:02
【问题描述】:
我使用 dsquery 接收有关我在 AD 中登录的信息,并收到有关我所属组名称的信息。
-名称
CN=Surname Name I,OU=CITY,OU=FOLDER,OU=Users,DC=domain,DC=com
-组
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
]
这是有效的配置,但问题是域中的任何用户都可以访问。
【问题讨论】:
-
您尝试过
...ldap.search.base的变体吗?另一种选择是向所有控制器添加@Secured(['ROLE_Name-of-Group Using Spaces'])注释。但是,这仍然允许每个人进行身份验证。不属于特定组的用户只会看到“拒绝”页面。 -
使用
@Secured没有帮助。我收到"Sorry, you're not authorized to view this page."消息。另外,我尝试在ldap.search.base中使用"Name-of-Group Using Spaces"- 这个解决方案也不起作用。
标签: spring security authentication grails active-directory