如何獲取所有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