0

認証が失敗し、いくつかのエラー メッセージが表示されたときに、ログイン ページにリダイレクトしようとしています。これは認証されていないという言い方で、ある種のパラメーターをどのように渡してから、エラーテキストを添付するのです/loginか?security-context.xml

<security:form-login login-page="/login"
                     username-parameter="email"
                     password-parameter="password"
                     default-target-url="/member/"
                     authentication-failure-url="/login"/>

/login実際には、ModelAndView を返すためのコントローラーです。

4

3 に答える 3

1

受け取る AuthenticationException に応じて異なる反応を示す AuthenticationFailureHandler を使用することもできます。

<security:form-login login-page="/login"
    username-parameter="email"
    password-parameter="password"
    default-target-url="/member/" 
    authentication-failure-handler-ref="myAuthenticationFailudeHandler"/>

たとえば、ユーザーを .../login?errorCode=errorCode1 にリダイレクトできます。

次に、さまざまなエラー コードに反応するようにコントローラーを変更できます。

@RequestMapping(value = "/login", method = RequestMethod.GET)
public String getLoginPage(
        ..., 
        @RequestParam(value="errorCode", required = false) String errorCode, 
        Model model, 
        ... ) {
    if (errorCode != null) {
        model.put("error", translateErrorCode(errorCode));
    }
    ...
于 2013-04-11T13:17:54.257 に答える
1

私は通常これを行います

<security:form-login login-page="/" authentication-failure-url="/myapp/auth/login?error=true" default-target-url="/myapp/main/default"/>

そしてコントローラー:

@RequestMapping(value = "/auth/login", method = RequestMethod.GET)
public ModelAndView indexp(@RequestParam(value = "error", required = false) boolean error, ModelMap model, Principal principal) {
ModelAndView mv = new ModelAndView("view");
// return your view....
}

パラメータは、エラー メッセージを表示するのに役立ちます。

于 2013-04-13T06:14:32.210 に答える