0

この投稿によると、OOME/Stackoverflow の原因となる問題がありますが、ほぼ間違いなく、これはログイン時のフォーム送信の重複が原因のようです。これはすべて、Spring Security プラグインを使用して行われます。これを防ぐ方法はありますか?

useToken/withForm を使用することを考えましたが、Spring Security が j_spring_security_check に投稿する方法がわからないため、それを制御できません。

カスタム UserDetailsS​​ervice を使用しており、現在のセッションが RequestContextHolder.requestAttributes.sessionMutex.session.attributes.xyz などを介してログインしているかどうかを確認する方法を確認できますが、それが正しい方法であるかどうかもわかりません。

Grails 2.0.4 の使用

4

2 に答える 2

1

「Grailsには、「シンクロナイザートークンパターン」を使用して重複するフォーム送信を処理するためのサポートが組み込まれています。開始するには、フォームタグでトークンを定義します。」

方法は次の場所で読むことができます:http://grails.org/doc/latest/guide/single.html#formtokens

于 2012-08-28T12:47:54.740 に答える
0

カスタム UserDetailsS​​ervice で呼び出される User.save() (最終ログイン時刻の更新など) というコアの問題を追跡し、各ユーザーの後続の呼び出しで Hibernate セッションが閉じられました。

User.save() を AuthenticationEventListener.onApplicationEvent(AuthenticationSuccessEvent event) に移動し、正常に動作するようになりました。j_spring_security_check への重複した投稿を処理する方法を知っておくとよいでしょう

于 2012-08-29T00:57:49.223 に答える