spring-securityを3から4にあげた時にはまったこと
概要
Spring3から4へのアップデート中にspring-securityをアップデートする必要がありました。
Spring4にアップデートして諸々対応後リリースして動作確認してみると、ログイン時に「403 Forbidden」となってしまいました。
解決策
以下の3点の修正でアップデートできました。
- CSRFの設定をdisableにすること
- アクセス制限のフォーマットの変更
- ログインフォームのname属性名の変更
詳細
基本的には以下のブログにある通りです。
(お世話になりました...)
このブログで紹介してくれている内容のうち、
僕のプロジェクトの場合以下の二点のみの修正で良さそうでした。
- <form-login>のデフォルト値変更
- applicationContext-security.xmlの変更
この後、idとpasswordを入れてログインしようとすると403のエラーが出てしまいました。
tomcatのエラーログをみるとなんかそれっぽいログがでていました。
10:12:47 [http-bio-8080-exec-5] DEBUG o.s.security.web.csrf.CsrfFilter - Invalid CSRF token found for http://xxxxxxxx:8080/admin/security_check
しぶしぶマイグレーションガイドを見ると、CSRFの設定が必要とわかりました。
http://docs.spring.io/spring-security/site/migrate/current/3-to-4/html5/migrate-3-to-4-xml.html
社内のCSRFの危険性もあまりないと判断して、以下の設定をして一件落着でした。
<http>
...
<csrf disabled="true"/>
</http>
Author And Source
この問題について(spring-securityを3から4にあげた時にはまったこと), 我々は、より多くの情報をここで見つけました https://qiita.com/genre/items/41f7c51659cf4a8be1be著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .