ひよっこ。

I want to…

SpringSecurityでIPアクセス制御を行う

Posted by hikaruworld : 2011 6月 15

SpringSecurityを使っていて、特定のIPアドレス以外からの認証を制御したくなりました。
最初はVoterを拡張して、IPAccessVoter的なものを実装していたんですが、
ドキュメントを読んでみると、15. Expression-Based Access Controlというのを発見しました。

読んでみれば、use-expressions=”true”を設定して、accessを利用すれよいとのこと。
ソンナー、コンナカンタンナホウホウガ。

というわけで、ドキュメントに従って以下のように設定しました。

<http use-expressions="true">
    <intercept-url pattern="/hoge*" access="hasIpAddress('127.0.0.1')"/>
</http>

で、確認してみるとOKー。

気がつくのが遅かったorz…。

以下、余談。

大体こういう制御はプロパティに出しておきたいので、プロパティファイルに押し出して@Valueで値を設定しておきました。
プロパティファイルへのキーがconfigとすると、大体こんな感じになります。

<http use-expressions="true">
    <intercept-url pattern="/hoge*" access="#{config.ipAddress}"/>
</http>

設定ファイルはこんな感じ

ipAddress=hasIpAddress('127.0.0.1')

注意点としてはuse-expressionsを利用した場合、accesssの戻り値はbooleanにする必要があるみたいです。
hasIpAddressを複数指定したい場合は、こんな感じで指定します。

ipAddress=hasIpAddress('127.0.0.1') or hasIpAddress('localhost')

以上です。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

 
%d人のブロガーが「いいね」をつけました。