Мой вопрос на самом деле этот вопрос именно: Shiro JndiLdapRealm authorization against LDAPНастройка авторизации для JNDILdapRealm в Shiro
В итоге, Shiro documentation состояния:
Если вы хотите, чтобы выполнить авторизацию на основе схемы LDAP, вы должны создать подкласс этот (JNDILdapRealm) и переопределить этот метод (doGetAuthorizationInfo), чтобы отразить модель данных вашей организации.
Я смущен принятым решением, поскольку SearchBase не определен, и это похоже на то, что является частью ActiveDirectoryRealm, а не JndiLdapRealm. getRoleNamesForGroups также не определено, но я предполагаю, что в моем сопоставлении имя группы будет именем роли.
Я пытаюсь получить разрешение на отображение групп ldap -> сиро ролей для Forumsys's Test Ldap Server, а затем вернуть их в doGetAuthorizationInfo. Код, я использую, чтобы настроить свой подкласс LdapRealm (который проходит JndiLdapRealm, и который работает для аутентификации) выглядит следующим образом:
LdapRealm ldapRealm = new LdapRealm();
ldapRealm.setUserDnTemplate("uid={0},dc=example,dc=com");
JndiLdapContextFactory cf1 = new JndiLdapContextFactory();
cf1.setUrl("ldap://ldap.forumsys.com:389");
ldapRealm.setContextFactory(cf1);
Кто-нибудь есть пример того, что функциональный код авторизации должен выглядеть? Или есть простая модификация принятого ответа на другой вопрос, который будет работать?
В качестве альтернативы, есть ли способ заставить тестовый сервер Forumys работать с ActiveDirectoryRealm вместо этого (что, на мой взгляд, реализует авторизацию)?
Недурно только для получения setUserDnTemplate для меня на форумах! – opticyclic