4

質問:

  • サーブレットコンテナに一般的なユーザーとロールの概念はありますか?
  • もしそうなら、それらのユーザーとロールにアクセスするコンテナに依存しない方法はありますか?
  • そうでない場合、Tomcat Realm のユーザーとロールにアクセスする方法はありますか?

バックグラウンド:

すべてのユーザーとそのロールを Java webapp コンテキスト (サーブレット コンテナー) から取得するか、ユーザーとそのロールを直接クエリすることをお勧めします。

接続文字列がわかっている場合にLDAPに対してこれを実行できるApache Directoryのようなプロジェクトがあることがわかりました。ただし、ユーザーと役割を提供するテクノロジにとらわれないようにしたいと考えています。

具体的には、私は Tomcat を使用しており、最も単純なシナリオでは、a) tomcat-users.xmlb) コンテキストで構成されたその他のユーザーとロールにアクセスしたいと考えてRealmいます。ただし、Tomcat に固有ではないソリューションを本当に探していRealmsます。

4

1 に答える 1

1

tomcat (またはその他の conytainer) (std. Servlet API を使用) では、(tomcat/サードパーティ固有のメカニズムを使用しない限り) ユーザーロールに直接アクセスすることはできません。getUserPrincipal と isUSerInRole は 2 つのメソッドであり、ロール リストに直接アクセスすることはできません。

API はそのようなアクセスを提供しないため、コンテナーまたはテクノロジー固有の他のメカニズムに依存する必要があると思います。

ご指摘のとおり、構成されたレルムが JNDI レルムであり、レルム ストアが LDAP を介して実装されている場合、サーブレット フィルターを作成し、LDAP からロールを取得して、セッションまたはスレッド ローカルに設定することができます。

于 2015-07-27T04:35:57.340 に答える