как запустить пользовательскую страницу входа в Spring Security - PullRequest
1 голос
/ 03 января 2012

Я написал весенний файл безопасности xml и login.jsp, контроллер. но все еще не могу запустить его. Я получил ошибку 404. Как мне нужно добавить или настроить в XML.

спасибо

Ответы [ 2 ]

3 голосов
/ 03 января 2012

Добавьте определение как следующее в ваш весенний контекст.

<security:http>
<security:form-login login-page='/login' authentication-failure-url="/login?authfailed=true"/> 
<security:logout />
</security:http>

Вы также должны определить шаблоны URL, используя <security:intercept-url>.

1 голос
/ 03 января 2012

Вам не нужен пользовательский контроллер.

Вам нужен только JSP (x), который передает два значения

  • j_username
  • j_password

и необходимо изменить конфигурацию для использования формы

<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                    http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd">


<http auto-config="true" use-expressions="true">
  <logout logout-url="/static/j_spring_security_logout"/>
  <form-login  login-processing-url="/static/j_spring_security_check" login-page="/login" authentication-failure-url="/login?login_error=t"/>

    <intercept-url pattern="/js/**" access="permitAll" />
    <intercept-url pattern="/css/**" access="permitAll" />
    <intercept-url pattern="/images/**" access="permitAll" />
    <intercept-url pattern="/static/**" access="permitAll" />
    <intercept-url pattern="/login**" access="permitAll" />
    <intercept-url pattern="/**" access="isAuthenticated()" />
</http>
...

Важно: вам не требуется аутентифицированный доступ для login-page, а также для login-processing-url!

  • login-page == страница, которая отображается, когда пользователю необходимо ввести свое имя пользователя и пароль
  • login-processing-url == пользователь, которому передаются имя пользователя и пароль

login.jspx:

<spring:url value="/static/j_spring_security_check" var="form_url" />
<form name="f" action="${fn:escapeXml(form_url)}" method="POST">
   <input type='text' name='j_username' />
   <input type='password' name='j_password' " />
   <c:out value="${SPRING_SECURITY_LAST_EXCEPTION.message}" />
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...