Shiroを使用してActive Directoryに対してActiveDirectoryRealm
を使用して認証しています。この部分は正常に動作し、ログインできます。システムユーザーなしでShiroのADグループを検索するにはどうすればよいですか?
ただし、ロール/グループを検索することはできません。
systemUsername/systemPassword
が設定されていないと思われます。私はその選択肢もありません。
LdapAdminのようなアプリケーションを使用する場合は、接続と参照を行うためにメールボックスとパスワードを認証フィールドに入れなければなりません。
私は春のセキュリティを使用する場合、私はそのような「systemUser」を供給する必要はありません。私はそれが私がログインするために供給したものと同じユーザ名/パスワード資格を使用していると推測しています。
同じようにShiroを設定するにはどうすればよいですか?
私のがどのように見えるかについては、以下を参照してください。
adRealm = org.apache.shiro.realm.activedirectory.ActiveDirectoryRealm
adRealm.url = ldap://my.ad.url:389
[email protected]
adRealm.systemUsername=
adRealm.systemPassword=
adRealm.searchBase = "OU=org,DC=example,DC=com"
adRealm.groupRolesMap = "CN=admins":"admin"
この機能を提供するために何かサブクラス化/オーバーライドすることはできますか? – opticyclic
絶対に、この[スレッド](http://shiro-user.582556.n2.nabble.com/How-to-set-a-custom-principal-object-td1090270.html)を見てください。それはあなたの正確な問題を解決するものではありませんが、そのアプローチを使用することはそれを解決する一つの方法です。 場合によっては、ログイン時にカスタムプリンシパルを作成し、ロールを照会し、プリンシパルで何らかのsetRoles()メソッドを呼び出すことができます。その後、 'getAuthroizationInfo()'をオーバーライドし、プリンシパルのカスタム 'getRoles()'の結果で 'AuthenticationInfo'オブジェクトを構築します。 –