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 のみを修正していきます。
    <sec:http>
        <sec:intercept-url pattern="/**" access="ROLE_USER"/>
        <sec:openid-login />
      </sec:http>
      <sec:authentication-provider>
        <sec:user-service>
          <sec:user password="notused" name="http://foge.blogspot.com" authorities="ROLE_USER"/> ← これは×
          <sec:user password="notused" name="http://foge.blogspot.com/" authorities="ROLE_USER"/> ← これは○
        </sec:user-service>
      </sec:authentication-provider>
    

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