bay*_*der 6 java pentaho spring-security
我正在尝试使用Spring安全性来支持嵌套的LDAP角色的Pentaho-BI服务器.我的小组结构如下:
我想验证User1是PentahoAdmins组的一部分,而无需直接将用户添加到组中.从我的在线研究来看,Spring的DefaultLdapAuthoritiesPopulator似乎不支持嵌套组.我确信可以创建一个支持组嵌套的子类,但是有人已经解决了这个问题并将其发布在一个开源项目中吗?
小智 7
如下配置LDAP权限填充程序,它将适用于嵌套组:
<bean id="ldapAuthoritiesPopulator" class="org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator">
<constructor-arg ref="ldapContextSource" />
<constructor-arg value="OU=Resource,OU=Security Groups,OU=Administrative Area" /> <!-- group search base -->
<property name="groupRoleAttribute" value="cn" /> <!-- cn is default, but setting it anyway so it's clear -->
<property name="rolePrefix" value="" /> <!-- reset prefix, default is ROLE_ -->
<property name="convertToUpperCase" value="false"/>
<property name="searchSubtree" value="true" /> <!-- deep search -->
<property name="groupSearchFilter" value="(&(&(objectClass=group)(objectCategory=CN=Group,CN=Schema,CN=Configuration,DC=company,DC=local))(&(cn=RG-TRADE*)(member:1.2.840.113556.1.4.1941:={0})))" />
</bean>
Run Code Online (Sandbox Code Playgroud)
groupSearchFilter值表示:
objectClass=[group object class] AND objectCategory=[group object category] AND cn_name_of_group=RG-TRADE* AND member:here_magic_for_nested_groups=[user full dn]
Run Code Online (Sandbox Code Playgroud)
小智 2
我发现这篇文章是关于 Microsoft 的 Active Directory 的。搜索 LDAP_MATCHING_RULE_IN_CHAIN 或上面的链接将显示有关该主题的更多信息。这个想法是,您可以在 Spring Security 配置中为父组和用户的 uid 添加组搜索过滤器:
(&(uid={0})(memberof:1.2.840.113556.1.4.1941:=CN=parentGroup,DC=mycompany,DC=com))
=~ This user is {0} and is in a group that is a member of our parent group.
Run Code Online (Sandbox Code Playgroud)
我使用 Spring LDAP 使用只读上下文搜索 MS Active Directory 对此进行了测试,但我尚未使用 Spring Security 中的 group-search-filter 确认这一点。我希望这有帮助。
归档时间: |
|
查看次数: |
4599 次 |
最近记录: |