Как запретить Spring Security 2.5 переопределять загрузку страницы приветствия (index.html) - PullRequest
0 голосов
/ 09 июля 2010

У меня есть веб-приложение Spring MVC, которое я хотел бы показать на простой странице приветствия (index.html). На этой странице у меня просто есть две ссылки: одна для перехода на страницу входа, которая затем реализуется с помощью Spring Security (2.5.6) и Hibernate 3, а другая - на страницу регистрации для новых пользователей.

Однако проблема в том, что Spring Security автоматически загружает мою страницу входа в систему каждый раз и НЕ загружает страницу index.html, где я кодировал 2 ссылки, чтобы перенаправить меня на страницу входа или регистрации. Я принес на страницу входа, которая работает нормально. Однако мне никогда не удается показать начальную страницу index.html моего веб-приложения.

Может ли кто-нибудь пролить свет на то, как запретить Spring Security переопределять «страницу приветствия» с помощью страницы входа в систему.

Большое спасибо.

Вот мой Spring Security, настроенный в web.xml:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        WEB-INF/spring-beans.xml 
        WEB-INF/spring-security.xml
    </param-value>
</context-param>

 <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>

<welcome-file-list>
    <welcome-file>index.html</welcome-file>

</welcome-file-list>

Ответы [ 3 ]

1 голос
/ 09 июля 2010

В вашем файле web.xml нет ничего плохого, вам нужно показать нам свой файл WEB-INF / spring-security.xml.

Если вы продолжаете перенаправляться на страницу входа, скорее всего, вы испортили шаблон перехвата-URL, который заставляет Spring Security перехватывать вашу страницу приветствия для дальнейшей аутентификации перед ее отображением.

Это пример тегов intercept-url, которые вы найдете в файле WEB-INF / spring-security.xml: -

<http auto-config="true" access-denied-page="/accessDenied.jsp">
        <intercept-url pattern="/login.jsp*" filters="none"/>  
        <intercept-url pattern="/admin/searchUsers.do" access="ROLE_ADMIN"  />
        <intercept-url pattern="/**.do" access="ROLE_USER,ROLE_ADMIN"  />
        <form-login authentication-failure-url="/login.jsp?login_error=1" default-target-url="/home.do"/>
        <logout logout-success-url="/home.do"/>
    </http>
0 голосов
/ 08 февраля 2013

Контроллер должен обрабатывать запрос пользователя, и в вашем случае нет контроллера, который сопоставлен с этим URL. Когда контроллер найден, он выполняет некоторую логику и возвращает имя представления, которое будет использоваться для представления ответа сервера. Таким образом, транслятор имени представления вызывается только после контроллера и только для вывода полного пути к конкретному файлу JSP.

<mvc:view-controller path="/" view-name="index"/>

Попробуйте добавить

0 голосов
/ 09 июля 2010

использование

<form-login login-page="/login.jsp" />

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