03-2.Spring Security 3の設定方法

概要

Spring Security 2.x系から3.x系へ変更する方法をみてみたいと思います。

基本的には、以前の記事の内容はそのまま使用できます。

つまり変更が必要なケースは、自作クラスを作ったりしている場合です。

以下に詳しく記述があります。

http://www.packtpub.com/article/migration-to-spring-security-3

ここでは、英語を読むのが面倒な人のために、主な変更点だけかいつまんで見ていくことにします。

クラスの変更

クラスやパッケージ名が少々変更になっています。

機能はそれほど変わらないようです。

変更になったパッケージやクラス名の例:

FilterSecurityInterceptor

FilterInvocationDefinitionSource

AuthenticationProvider

【変更方法】

ソースファイルやSpring設定ファイル上で、使用しているパッケージ名やクラス名を変えるだけです。

メソッド名が変わっているケースもありますが、ほとんど一緒なのでそれ程おおきな問題にはならないはずです。

DIコンテナ(Spring設定ファイル)のタグの変更

カスタマイズのためのタグの名前や使い方が変わっているものがあります。

httpタグのように通常で使用するようなものはほとんど変わっていません。

参考: タグリファレンス

以下で、変更された主なタグを見てみましょう。

custom-authentication-providerタグ

このタグはなくなりました。

その代わり、以下のように書きます。

<sec:authentication-manager>

<sec:authentication-provider ref="myProvider" />

</sec:authentication-manager>

もちろん、myProviderはbeanタグでSpring設定ファイルに記述しておく必要があります。

custom-filterタグ

使い方が変わりました。

今までは、自作したフィルタのbeanタグ内に設定していました。

しかし、どうも、beanタグの子タグにする方法だとうまくいかないケースがあるようで、

以下のようにhttpタグ内に記述する方法に変わりました。

<sec:http path-type="ant"auto-config="false" >

<!-- フィルタの挿入位置を指定する。ここでは1つ前を指定している。 -->

<sec:custom-filter ref="myFilter" before="FILTER_SECURITY_INTERCEPTOR"/>

</sec:http>

もちろん、myFilterはSpring設定ファイルに記述しておく必要があります。

ちなみに、before, position属性などで指定する位置の名称も変わっているものもあります。

【変更された位置名称の例】

Created Date: 2013/07/07