J2EEコンテナによって提供されているAuthentication(認証)とAuthorization(承認)の機能を、Seasarから簡単に使用することを目的としたプロジェクトです。Authorizationの略です。†S2AnAは大きく2つ、認証系(authentication)と承認系(authorization)に分かれます。認証(authentication)とは、システムにアクセスしているユーザ(正しくはPrincipalといいます)が誰であるかの識別と特定を行う機能です。承認(authorization)とは、ユーザが特定の対象物に対してアクセスする権限があるかどうかを調べ、アクセスを許可あるいは拒否する機能です。認証された情報は正しくはPrincipalですが、このドキュメントでは簡単に理解していただくためにPrincipalのことをユーザと書いております。実際のPrincipalは人間だけでなく組織や機械を指し示すこともあります。認証系と承認系を結ぶためのインターフェイスです。コンテナや個々のアプリケーションで認証した情報に対して、S2AnAはこのインターフェイスを通じてアクセスします。実装する場合には、以下のメソッドを実装する必要があります。booleanなお、AuthenticationContextの簡易実装としてRequestDelegatingAuthenticationContextを提供しています。†HttpServletRequestを介してWebApplicationのRealm認証情報へのアクセスを行うコンポーネントです。使用するにあたっては、web.xmlにs2filterが設定されていることが前提条件となります。/>なお、WebApplicationのRealm認証情報へのアクセスを行う実装はs2-ana-provider-webcontainerとしてパッケージングされています。s2-ana-provider-webcontainerを使用する際には、s2ana-provider-webcontainer.diconをs2ana.diconファイルにincludeするようにしてください。現在3つのinterceptorをS2AnAで用意していますAuthenticatedAccessOnlyInterceptorAllowInterceptorDenyInterceptorこれら承認系のinterceptorに対して、AuthenticationContextがインジェクトされます。「認証されているかどうか」をチェックするinterceptorです。インジェクトされているAuthenticationContextのisAuthenticatedメソッドを使用して、既に認証が行われているかどうかを検査します。AuthenticationContext#isAuthenticatedがfalseを返す場合にはSNotAuthenticatedExceptionを投げます。この例外をキャッチしてログイン画面等に遷移させるのが典型的な使用例となります。†インジェクトされているAuthenticationContextのisUserInRoleメソッドを使用して、アクセスしているユーザが指定されたロールに属しているかどうかを検査します。AllowInterceptorは指定されたロールに属しているユーザのアクセスのみを許可しますDenyInterceptorは指定されたロールに属しているユーザのアクセスを拒否しますAllowInterceptorにアクセスが許可されなかったか、またはDenyInterceptorにアクセスが拒否された場合には、SAccessDeniedExceptionが投げられます。AllowInterceptor,DenyInterceptorのdiconファイルへの記述方法は(FQCNを除いては)共通です。†t-wada[http://d.hatena.ne.jp/t-wada/]と申します。†S2AnAはS2コアとS2AOPに依存します。そのほかの依存関係はありません。最新の10件を表示しています。非常に興味があります。S2AnAを実装したWEBアプリケーションのサンプルはございますでしょうか。00:52:41返答遅れまして非常に申し訳ございません。現時点ではサンプルアプリケーションは残念ながら出来ておりません。9月のイベントまでに他プロダクトとの連携も含めたサンプルをリリースすることを考えております。02:16:36ご回答いただきまして、ありがとうございます。楽しみにしておりますので、よろしくお願いします。