1

Java EEアプリケーションに認証にj_security_checkを使用させ、承認には使用させない方法はありますか?スタンドアロンLDAPリポジトリを介して認証を行いたいのですが、アプリケーションでプログラムによる承認を行いたいのです。

具体的には、Websphere Application Server管理コンソール内で承認(グループへのユーザー役割のマッピング)に関する構成を行いたくありません。

例えば:

  1. ユーザーは正しい「user1」とパスワード「password1」でログインします
  2. WebsphereはLDAPでこの人を見つけ、彼らが本人であると知っています(認証)
  3. このユーザーが承認されているかどうかをファイルシステム上のファイルから確認します(承認)
4

3 に答える 3

3

これにはSpringSecurityを使用することをお勧めします。この正確なパターンをWebSphereに実装しました。秘訣は、Spring Securityが提供する事前認証メカニズムを使用してから、構成で承認ルールのみを定義することです。

<http>
  <session-management session-fixation-protection="none"/>
  <custom-filter position="PRE_AUTH_FILTER" ref="preAuthenticationFilter"/>
  <intercept-url pattern="/j_security_check" filters="none"/>
  <intercept-url pattern="/ibm_security_logout" filters="none"/>
  <!-- put authorization intercept-url elements here... -->
</http>

事前認証されたフィルターやカスタムエントリポイントなど、他のBeanも定義する必要がありますが、これについてはhttp://static.springsource.org/spring-security/site/docs/3.0.x/に記載されています。 reference / preauth.html

于 2012-05-24T16:56:54.753 に答える
1

JavaEEセキュリティも分割できます。ただし、コンテナの実装によって異なります。Websphereについて言及しているので、このドキュメントは興味深いかもしれません。

于 2012-05-24T16:33:10.570 に答える
1

SpringSecurityをご覧ください。認証と承認の概念は分かれています。

認証はによって処理されますAuthenticationProviderLdapAuthenticationProvider実装はSpringの一部です)。GrantedAuthority認証プロバイダーは、ユーザーのアクセス許可を表すことができるオブジェクトのリストを含む、ユーザーの詳細をフェッチするように委任します。

LdapAuthenticationProviderLdapAuthoritiesPopulatorデフォルトでは、ディレクトリから付与された権限を取得しようとするため、ファイルシステムからロードする独自の実装を提供する必要があります。

于 2012-05-24T16:22:49.607 に答える