スプリング セキュリティ フォーム ログインを使用する際の問題についてサポートが必要です。フォームログインはエスケープ特殊文字を含むユーザー名をサーバーに送信しますが、スプリングはこのパラメーターをエスケープ解除せず、データベースにユーザーが見つかりません。
カスタムの UserDetailsService を使用していますが、ユーザー名のパラメーターに特殊文字が含まれています。特殊文字をエスケープできない可能性はありますか?
特殊文字をエスケープしようとしていますが、変更に失敗します。
データ: - Spring 3.1.1.RELEASE - Spring Security 3.1.1.RELEASE - Tomcat 7.X
編集:
web.xml ファイルにエンコンディング フィルターを入れることで問題が解決すると思います。
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>