如何获取所有Active Directory组(不仅与当前用户有关)?我正在使用spring security ldap。你能提供一些例子吗?如何获取弹簧安全中的所有LDAP组
1
A
回答
-1
这个类默认:
它可以帮助
+0
是的,我看到如何获得特定用户的组。问题是,我还没有找到获取包含所有现有ldap组的列表的方式。 –
1
你可以做的是写LdapAuthoritiesPopulator
实现了DefaultLdapAuthoritiesPopulator
匹配实现一个额外的方法来检索所有角色。
public class ExtendedLdapAuthoritiesPopulator
implements LdapAuthoritiesPopulator {
// Copy implementation of DefaultLdapAuthoritiesPopulator (omitted).
private String allAuthorityFilter
= "(&(objectClass=group)(objectCategory=group))";
public void setAllAuthorityFilter(String allAuthorityFilter) {
Assert.notNull(allAuthorityFilter,
"allAuthorityFilter must not be null");
this.allAuthorityFilter = allAuthorityFilter;
}
public final Collection<GrantedAuthority> getAllAuthorities() {
if (groupSearchBase == null) {
return new HashSet<>();
}
Set<GrantedAuthority> authorities = new HashSet<>();
if (logger.isDebugEnabled()) {
logger.debug("Searching for all roles with filter '"
+ allAuthorityFilter + "' in search base '"
+ groupSearchBase + "'");
}
Set<String> roles = ldapTemplate.searchForSingleAttributeValues(
groupSearchBase,
allAuthorityFilter,
new String[0],
groupRoleAttribute);
if (logger.isDebugEnabled()) {
logger.debug("Roles from search: " + roles);
}
for (String role : roles) {
if (convertToUpperCase) {
role = role.toUpperCase();
}
authorities.add(new SimpleGrantedAuthority(rolePrefix + role));
}
return authorities;
}
}
在您的spring安全配置中,将DefaultLdapAuthoritiesPopulator
更改为您的新实现。
一个附加属性可以设置AllAuthorityFilter
哪些过滤哪些组将被返回。
您可能更喜欢您的实现只检索基于String
的角色名称而不是GrantedAuthority
实例。
相关问题
- 1. 获取LDAP用户组的弹簧
- 2. 获取弹簧安全中的所有活动会话
- 3. 如何将弹簧安全性从ldap更改为ldap starttls
- 4. 弹簧安全2.0弹簧安全3.0
- 5. 弹簧数据安全与弹簧安全 - 找到所有当前用户
- 6. 弹簧安全
- 7. 没有弹簧安全性的ldap&JWT认证
- 8. grails中的弹簧安全
- 9. 无法从Ldap安全域获取组
- 10. 动态LDAP与Grails中的弹簧安全
- 11. Neo4j弹簧安全
- 12. 弹簧安全表
- 13. 使用弹簧安全与弹簧批
- 14. Angular2与弹簧靴和弹簧安全
- 15. 弹簧启动和弹簧安全4.0
- 16. 弹簧启动弹簧安全
- 17. 在弹簧安全与弹簧websocket集成弹簧安全性和
- 18. 如何在弹簧安全中从ldap中检索一些字段
- 19. 没有弹簧安全性的弹簧对象级权限ACL
- 20. ldap使用弹簧安全性的身份验证
- 21. 如何整合弹簧4与弹簧安全3.2.3
- 22. grails弹簧安全角色和组
- 23. 弹簧组件字段线程安全
- 24. 如何使用弹簧引导和弹簧安全性配置弹簧4.0 openId
- 25. 有条件的弹簧安全
- 26. LDAP:如何获取Active Directory中的所有组?
- 27. 如何覆盖弹簧安全信息?
- 28. 如何使弹簧安全动态
- 29. 弹簧安全如何工作
- 30. 抓取使用弹簧安全
[你有什么尝试?](http://whathaveyoutried.com) –
你有没有经过其他线程,人们提供的例子和问题?例如http://stackoverflow.com/questions/7417177/spring-security-authentication-using-ldap – CodeDreamer