0

LoginControllerのアクションauthfailで認証が失敗したときに、春のセキュリティコアgrailsプラグインでユーザーが入力したパスワードを取得する方法はありますか?

def authfail = {

def msg = ''

// I can get the username as below
def username = session[UsernamePasswordAuthenticationFilter.SPRING_SECURITY_LAST_USERNAME_KEY]

// There is UsernamePasswordAuthenticationFilter.SPRING_SECURITY_FORM_PASSWORD_KEY but the value is null when access here as below   
def attemptedPassword = session[UsernamePasswordAuthenticationFilter.SPRING_SECURITY_FORM_PASSWORD_KEY]
.
.
.
}

認証に失敗したときに入力したパスワードを知る必要があります。

4

1 に答える 1

1

可能ですが、ログインフォームを送信する前にパスワードをセッションに保存する必要があります。カスタム ボタンをログイン フォームに追加し、送信ボタンを非表示にします。

<form action="/j_spring_security_check">
   ...
   <button onclick="javascript:store()" type="button">Login</button>
   <input class="invisible" id="loginButton" type="submit">
</form>

store()関数を JavaScript で記述する必要があります。これを実現する方法の例を次に示します: FIDDLE (ここから借用)。明らかに、この関数ではフォーム送信を囲む必要があります (jQuery を使用):$('#loginButton').click()

認証に失敗した後、保存されたパスワードを取得する必要があります。

于 2013-11-09T10:02:24.183 に答える