- 我在我的应用程序中使用 JSF(Primefaces)、Spring、Spring Security、MyBatis 和 PrettyFaces。
- 我有一个没有被 PrettyFaces 映射的 URL。
- 此 url 重定向到 XHTML 页面。XHTML 页面与 Spring Security 映射并与我的应用程序的角色相关联
- 在 XHTML 页面中,我调用了一个Authentication对象。这个对象存储用户登录了我的应用程序。
- 当我输入 url 时出现异常,因为Authentication对象为空
- 但是当我映射 url 时, Authentication对象返回值存储用户。
发生了什么?
这是我的 webapp 的日志:
40094 [http-8080-6] TRACE com.ocpsoft.pretty.PrettyContext - Initialized PrettyContext
40094 [http-8080-6] TRACE com.ocpsoft.pretty.PrettyContext - Initialized PrettyContext
40094 [http-8080-6] TRACE com.ocpsoft.pretty.PrettyFilter - Request is not mapped using PrettyFaces. Continue.
40094 [http-8080-6] TRACE com.ocpsoft.pretty.PrettyContext - Initialized PrettyContext
40094 [http-8080-6] TRACE com.ocpsoft.pretty.PrettyContext - PrettyContext not found in Request - building new instance
40094 [http-8080-6] DEBUG org.springframework.faces.support.RequestLoggingPhaseListener - Entering JSF Phase: RESTORE_VIEW 1
40141 [http-8080-6] TRACE com.ocpsoft.pretty.PrettyContext - Retrieved PrettyContext from Request
40141 [http-8080-6] TRACE com.ocpsoft.pretty.faces.beans.ParameterInjector - Validating parameters.
40141 [http-8080-6] TRACE com.ocpsoft.pretty.PrettyContext - Retrieved PrettyContext from Request
40141 [http-8080-6] TRACE com.ocpsoft.pretty.faces.beans.ParameterInjector - Injecting parameters
40141 [http-8080-6] TRACE com.ocpsoft.pretty.PrettyContext - Retrieved PrettyContext from Request
40141 [http-8080-6] TRACE com.ocpsoft.pretty.PrettyContext - Retrieved PrettyContext from Request
40141 [http-8080-6] INFO com.indra.siguip.view.exceptions.SiguipExceptionHandler - Entrando al manejador de Excepciones del JSF
40141 [http-8080-6] TRACE com.ocpsoft.pretty.PrettyContext - Retrieved PrettyContext from Request
40141 [http-8080-6] DEBUG org.springframework.faces.support.RequestLoggingPhaseListener - Entering JSF Phase: APPLY_REQUEST_VALUES 2
40141 [http-8080-6] INFO com.indra.siguip.view.exceptions.SiguipExceptionHandler - Entrando al manejador de Excepciones del JSF
40141 [http-8080-6] TRACE com.ocpsoft.pretty.PrettyContext - Retrieved PrettyContext from Request
40141 [http-8080-6] DEBUG org.springframework.faces.support.RequestLoggingPhaseListener - Entering JSF Phase: PROCESS_VALIDATIONS 3
40141 [http-8080-6] TRACE org.springframework.web.jsf.el.SpringBeanFacesELResolver - Successfully resolved variable 'applicationConfig' in Spring BeanFactory
40141 [http-8080-6] TRACE org.springframework.web.jsf.el.SpringBeanFacesELResolver - Successfully resolved variable 'menuGeneratorService' in Spring BeanFactory
28/05/2013 07:54:00 PM com.sun.faces.lifecycle.ProcessValidationsPhase execute
ADVERTENCIA: Se ha producido un error al realizar la inyección de recurso en el bean administrado menuController
com.sun.faces.mgbean.ManagedBeanCreationException: Se ha producido un error al realizar la inyección de recurso en el bean administrado menuController
at com.sun.faces.mgbean.BeanBuilder.invokePostConstruct(BeanBuilder.java:229)
这是我对 Spring Securiy 和 PretyFaces 的配置
<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>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
<filter>
<filter-name>Pretty Filter</filter-name>
<filter-class>com.ocpsoft.pretty.PrettyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Pretty Filter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>FORWARD</dispatcher>
<dispatcher>REQUEST</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
PD:我把话题改得更明确了