2014-01-15 8 views
7

私はログインフォームを持っており、csrf atacksから保護したいと思います。春のセキュリティcsrfがnullです

マイ春-のsecurity.xml

<sec:http auto-config="true" use-expressions="true"> 
    ... 
    <sec:csrf /> 
</sec:http> 

私のJSPファイル(使用タイル):

<form class="navbar-form navbar-right form-inline" method="POST" role="form" 
    action="j_spring_security_check"> 
    <div class="form-group"> 
    <input class="form-control" type="email" name="j_username"> 
    </div> 
    <div class="form-group"> 
    <input class="form-control" type="password" name="j_password"> 
    </div> 
    <button class="btn btn-default" type="submit">Login</button> 

    <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"> 
</form> 

私が許可することができますが、CSRFは空です:

<input type="hidden" value="" name=""> 

缶誰も私を助ける?

+2

ブロックはありますか?もしそうなら、あなたはログインフォーム上のセキュリティを無効にしていないことを確認してください。あなたは正しくjstlをセットアップしていますか? –

答えて

0

JSTLが正しく設定されていますか?代わりにタグを使ってみましたか?次のように動作すると、JSTLが正しくセットアップされていない可能性があります。

<c:out value="${_csrf.parameterName}"/> 

ブロックがあることは確かですか?そうであれば、ログインフォームでセキュリティを無効にしていないことを確認してください。

0

私は.m2ディレクトリをクリアし、すべての依存関係を再インポートしました。それは私に役立ちます。

2

security = "none"を適用すると、csrfトークンは生成されません。ページはセキュリティフィルターを通過しません。 ANONYMOUSロールを使用してください。

私は詳細には行っていませんが、私のために働いています。

<http auto-config="true" use-expressions="true"> 
    <intercept-url pattern="/login.jsp" access="hasRole('ANONYMOUS')" /> 
    <!-- you configuration --> 
</http> 
関連する問題