Greetings.

I have a very complex Shiro Active Directory setup with 20 realms and
each has a role map with 10 elements.
Querying AD one by one takes long of course. And so I do wonder:


1) ActiveDirectoryRealm extends AuthorizingRealm

2) AuthorizingRealm provides the method

protected boolean[] hasRoles(List<String> roleIdentifiers,
AuthorizationInfo info)

(Which still loops through one by one, calling `hasRole(roleName,
info);`).

3) ActiveDirectoryRealm provides the method

protected Set<String> getRoleNamesForUser(String username, LdapContext
ldapContext)

which fetches all the `memberOf` attribute values at once.

4) But as far as I can see, ActiveDirectoryRealm does not override
hasRoles() to make use of getRoleNamesForUser() and I wonder why?
Also, 

In case that is an oversight only, should I craft a PR?

Thank you, best and cheers
Andreas

Reply via email to