1

スプリング セキュリティ フォーム ログインを使用する際の問題についてサポートが必要です。フォームログインはエスケープ特殊文字を含むユーザー名をサーバーに送信しますが、スプリングはこのパラメーターをエスケープ解除せず、データベースにユーザーが見つかりません。

カスタムの UserDetailsS​​ervice を使用していますが、ユーザー名のパラメーターに特殊文字が含まれています。特殊文字をエスケープできない可能性はありますか?

特殊文字をエスケープしようとしていますが、変更に失敗します。

データ: - 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>
4

1 に答える 1

0

複雑なことをする必要はありません。標準のスプリング セットアップを使用するだけです。

 <form name="f" id="f" action="<c:url value='/j_spring_security_check'/>" method="POST">
   <label for="j_username">E-mail :&nbsp;</label><input type='text' id='j_username' name='j_username'/><br/>
   <label for="j_password">Password :&nbsp;</label><input type='password' id='j_password' name='j_password'><br>
于 2013-04-08T13:42:39.037 に答える