2013-07-08 8 views
5

Ich möchte benutzerdefinierte Fehlerseiten für Webanwendung implementieren. Ich verwende die folgende Art und Weise:Spring MVC: Fehlerseiten und Principal Information

web.xml

<error-page> 
    <error-code>404</error-code> 
    <location>/404/</location> 
</error-page> 

feder security.xml

<http use-expressions="true"> 
    <form-login ... /> 
    <access-denied-handler error-page="/403/" /> 
    .... 
</http> 

Beide Seiten durch entsprechende Steuerung verarbeitet werden. Aber es scheint, dass die principal in diesem Fall nicht nachvollziehbar ist, d. H. Ich kann keine Informationen über den aktuell angemeldeten Benutzer erhalten.

Ist es Standardverhalten oder ich habe einen Fehler im Code?

Danke

UPD # 1: Meine config:

<listener> 
    <listener-class> 
      org.springframework.web.context.ContextLoaderListener 
     </listener-class> 
    </listener> 
    <context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
     /WEB-INF/spring-service.xml 
     /WEB-INF/spring-security.xml 
     /WEB-INF/spring-data.xml 
     /WEB-INF/spring-mail.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> 
    <filter> 
    <filter-name>hibernateFilter</filter-name> 
    <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> 
    <init-param> 
     <param-name>sessionFactoryBeanName</param-name> 
     <param-value>sessionFactory</param-value> 
    </init-param> 
    </filter> 
    <filter-mapping> 
    <filter-name>hibernateFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <servlet> 
    <servlet-name>spring</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <load-on-startup>0</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>spring</servlet-name> 
    <url-pattern>/</url-pattern> 
    </servlet-mapping> 
+0

wie mappen Sie den Sicherheitsfilter in der web.xml-Datei? – Pastur

+0

@AbelPastur siehe Update – nKognito

Antwort

6

Für den Zugriff auf Hauptdaten von Fehlerseiten, müssen Sie Ihre Federsicherheitsfilter zur Karte als:

<filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>FORWARD</dispatcher> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>ERROR</dispatcher> 
</filter-mapping> 
Verwandte Themen