Как справиться с 404 с помощью Spring Security?

Я нашел только связанную тему для С#, пожалуйста, не вините меня, если я пропустил ресурс.

Это похоже на

/project/blablaentered и довольствоваться 404.

По сути, я просто хочу указать свою собственную страницу, когда выдается страница 404.

Мой xml безопасности:

<security:http auto-config="true" use-expressions="true" >
    <security:form-login login-processing-url="/static/j_spring_security_check" login-page="/login" authentication-failure-url="/login?login_error=t"  default-target-url="/home"/>
    <security:intercept-url pattern="/home" access="isAuthenticated()" />
    <security:intercept-url pattern="/home/try" access="hasRole('ROLE_EDITOR')"/>
    <security:access-denied-handler error-page="/accessDenied"/> 
       </security:http>

ОБНОВЛЕНИЕ. Пожалуйста, следуйте за решением: Пользовательский 404 с использованием Spring DispatcherServlet


person Aubergine    schedule 16.11.2011    source источник


Ответы (2)


Самый простой способ, вероятно, включить элемент error-page внутри web.xml, если вы не возражаете против того, чтобы это был простой JSP (т.е. без контроллера). Таким образом, URL-адреса за пределами вашего DispatcherServlet, которые будут генерировать 404 из вашего контейнера сервлетов, будут следовать по тому же пути, что и любой URL-адрес, который Spring не может сопоставить с контроллером на основе вашей конфигурации.

Если этого недостаточно, вы можете определить метод @Exception для конкретного контроллера или использовать метод HandlerExceptionResolver.

person Dan    schedule 16.11.2011
comment
Не могли бы вы предоставить пример кода? ОБНОВЛЕНИЕ: сделал так, по ссылке я расфокусировался, видимо ссылка, предоставленная мной, работает, извините. - person Aubergine; 16.11.2011

Вам нужно добавить класс:

import org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer;


public class SpringSecurityInitializer extends AbstractSecurityWebApplicationInitializer {

    // Do nothing

}
person searching9x    schedule 29.08.2016