4

Glassfish で LDAP レルムを構成しましたが、認証は正常に機能します。

ここで、プリンシパル.getName() の戻り値を LDAP ユーザー オブジェクトの特定の属性に一致させる方法を考えています。デフォルトで「givenName」などを使用すると思っていましたが、認証に使用されたユーザー名を返します。

追加情報を取得するために LDAP サーバーに余分にアクセスすることは気にしませんが、アプリケーションに LDAP 接続属性を保持する代わりに、セキュリティ レルムを注入し (そのようなことが可能であれば)、次を使用したいと考えています。独自の接続。

つまり、要するに、質問は次のとおりです。

1) レルムから返されたプリンシパルに追加の属性をマップできますか?

2) 1 つ目の方法が不可能な場合、レルムの情報を再利用して LDAP サーバーに接続し、必要なデータを取得するにはどうすればよいでしょうか?

ヘルプや提案をお寄せいただきありがとうございます。

4

3 に答える 3

1

カスタム LoginModule を使用しないと、プリンシパル属性のマッピングを拡張できませんでした。そのため、代わりにここで説明するソリューションを選択しました: http://docs.oracle.com/cd/E19798-01/821-1751/abllk/index.html

認証時に、挿入された LDAP コンテキストを使用して LDAP サーバーに戻り、必要な属性を取得します。サーバーへの 1 回のトリップではなく 2 回のトリップと、属性をプローブしてプリンシパル (または別の POJO) に何らかの方法で関連付けるための余分なコードです。

于 2013-08-31T16:58:32.727 に答える