Проблема входа в Spring Security - PullRequest
2 голосов
/ 10 ноября 2011

Я новичок в Spring Security и настроил Spring Security в своем приложении Spring MVC.

После отправки страницы входа в систему появляется следующая ошибка

The requested resource (/j_spring_security_check) is not available.

Я не могу понять это поведение.

Пожалуйста, помогите.

spring-security.xml

<security:http auto-config="true" use-expressions="true" access-denied-page="/appln/denied">
    <security:intercept-url pattern="/appln/login" access="permitAll" />
    <security:intercept-url pattern="/appln/index" access="hasRole('ROLE_ADMIN')" />
    <security:intercept-url pattern="/appln/run" access="hasRole('ROLE_ADMIN')" />
    <security:intercept-url pattern="/appln/common" access="hasRole('ROLE_USER')" />

    <security:form-login login-page="/appln/login"
                         authentication-failure-url="/appln/login?error=true"
                         default-target-url="/appln/run"
                         authentication-success-handler-ref="AuthHandlr" />

    <security:logout invalidate-session="true"
                     logout-success-url="/appln/login" 
                     delete-cookies="JSESSIONID" />
</security:http>

Web.xml

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<servlet>
    <servlet-name>servlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

Ответы [ 2 ]

1 голос
/ 11 ноября 2011

Решил проблему.

В моем loginpage.jsp атрибут действия был определен как

action=../../j_spring_security_check

Я играл с вышеупомянутым и изменил его на

action = /j_spring_security_check

и все работало без проблем.

Хотя проблема решена, кто-нибудь может объяснить, почему сработало изменение пути.

0 голосов
/ 08 января 2014

Действие формы может быть «j_spring_security_check» или «/j_spring_security_check».

Это значение по умолчанию в Spring-Security не может быть изменено.

Аналогично, поля формы должны быть 'j_username 'и' j_password '

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...