Свободная форма Spring Security Custom - PullRequest
0 голосов
/ 12 ноября 2009

В настоящее время я работаю над проектом, где мы используем freemarker в качестве языка шаблонов. Вместо использования формы входа в систему по умолчанию я создал собственный контроллер и пользовательское представление freemarker, которое идет вместе с этим контроллером

Код:

@Controller
public class LoginController {
private static finaal String LOGIN = "components/security/login";

@RequestMapping("/security/login")
public String login(){

    return LOGIN;
   }
}

мой шаблон бесплатного маркера:

HTML код:

<form action="${rc.contextPath}/j_spring_security_check" method="post">
    <label for="username">Username</label><input type="text" id="username" name="j_username"><br/>
    <label for="password">Password</label><input type="text" id="password" name="j_password"><br/>
   <input type="submit" value="Login!">
</form>

my applicationContext-security.xml

  <http>
    <logout/>
        <intercept-url pattern="/*" access="ROLE_ADMIN, ROLE_GUEST"/>
        <intercept-url pattern="/security/login" filters="none"/>
        <form-login login-page="/security/login" />
    </http>

логин работает как чудо, НО, когда пользователь вводит неверное имя пользователя или пароль, сообщения об ошибках не отображаются, и я не могу понять, как это сделать Не могли бы вы помочь мне с этим.

Ответы [ 2 ]

6 голосов
/ 13 ноября 2009

Код для тех, кому интересно, как я это сделал:

<#if Session.SPRING_SECURITY_LAST_EXCEPTION?? && Session.SPRING_SECURITY_LAST_EXCEPTION.message?has_content>
    <@spring.message "login.bad.credentials"/>
</#if>
0 голосов
/ 12 ноября 2009

Вам необходимо установить страницу ошибки:

<http>
   ...
   <form-login authentication-failure-url="/loginError.jsp" default-target-url="/start.jsp" />
   ...
</http>

В loginError.jsp :

...
Login error. Reason: <c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}"/>.
...
...