Acegi

Tilesでのロールによる表示の切り替え

TilesのputAttributeタグに role 属性があり、ユーザーのroleにより切り替えられるようになっている。この仕組みが Acegi による認証でも使えるのか確認してみた。 認証は Struts2 のアクションで独自に行う - Struts 2+Spring 2+Tiles+Acegi+iBatis+GWT+JUn…

関連システムJar一覧

今の /WEB-INF/lib 下の Jar は次のとおり acegi-security-1.0.5.jar acegi-security-catalina-1.0.5.jar acegi-security-tiger-1.0.5.jar aspectjrt.jar aspectjweaver.jar cglib-nodep-2.1_3.jar commons-beanutils-1.7.0.jar commons-collections-3.1.jar…

BeanのProxy作成で問題

Acegiの@Securedアノテーションを処理するために、SpringでStruts2のアクションBeanのProxyを作成し、Acegiの認可チェックInterceptorでチェックをさせようと考えていたが、Proxyを作成するとProxy側では基のクラスのAnnotation情報が欠落してしてまい、Stru…

Acegiのフィルター設定

認証、認可チェックはStruts側でやるのでAcegiでやるのは コンテキストをHTTPリクエストをまたいで有効にするための処理と、未ログイン時はAnonymousユーザーで認証されているようにするフィルター ※認証、認可をStruts側でやる意味は例外処理とか統一的にSt…

認証は Struts2 のアクションで独自に行う

認証の仕組みがAcegiにも当然用意されているが、設定ファイルにSQLを書いたり、Glueコード書いたりなんかしっくり来ない。 んでGlueコード書くぐらいならおんなじらいのコード量で済むんだから自分で書いた方が見通しが良い。パスワードチェックしてOKだった…

AcegiでのAnnotation ベースのメソッドセキュリティ設定

applicationContext.xml に次の設定を追加

Acegiとの連携2

こちらをベースにしたらもっとずっとスマートに出来たhttp://struts.apache.org/2.0.9/docs/can-we-use-acegi-security-with-the-framework.htmljp.co.hershe.struts2.acegi.AuthzInterceptor.java

認証されているユーザーの取得

<a:authentication operation="principal"/></a:authentication>

Acegiとの連携

filterは Acegi、 Struts2の順に適用する必要があるが、これだとAcegiのAccessDeniedExceptionがStrutsで処理できないなので、Struts2の Interceptor として実装したtutorial.AcegiSecurityFilter.java