2009年11月1日日曜日

Spring Security で OpenID 認証 Bookmark and Share

OpenID を試してみるのに、openid4java を見つけたのですが、Spring Security 2.0.x が OpenID 対応しているそうなので、こちらでやってみました。

まず、Spring Security が動く状態にするために以下のURLをサンプルとして利用させて頂きました。

  • 第11回 Spring Securityでラクラク! セキュリティ対策 - 今必要な人のための速習 Spring Framework:ITpro



  • ※ プロジェクトの作成ですが、URLの手順ではなく、以下の手順で行いました。
    1. maven で archtype=maven-archtype-webapp でプロジェクトを作成する
    2. 依存関係の追加で spring-security-openid を追加する
    3. 依存関係の追加で spring-security-taglibs を追加する
    4. 依存関係の追加で jstl を追加する
    5. 上記URLの手順で、プロジェクトを完成させる

    次に OpenID化です。

    ライブラリは既に揃っているので、applicationContext-security.xml のみを修正していきます。
    1. <sec:http>  
    2.     <sec:intercept-url pattern="/**" access="ROLE_USER"/>  
    3.     <sec:openid-login />  
    4.   </sec:http>  
    5.   <sec:authentication-provider>  
    6.     <sec:user-service>  
    7.       <sec:user password="notused" name="http://foge.blogspot.com" authorities="ROLE_USER"/> ← これは×  
    8.       <sec:user password="notused" name="http://foge.blogspot.com/" authorities="ROLE_USER"/> ← これは○  
    9.     </sec:user-service>  
    10.   </sec:authentication-provider>  

    blogger の OpenID の場合、最後に "/" 付きになるようで、"/" がないと認証できなくなってしまいます。
    今回はここまで。