Jsf 2 当URL未由PrettyFaces映射时,身份验证(Spring安全性)对象为空 我在应用程序中使用JSF(Primefaces)、Spring、Spring Security、MyBatis和PrettyFaces 我有一个URL不是由PrettyFaces映射的 此url重定向到XHTML页面。XHTML页面与Spring安全性映射,并与我的应用程序的角色关联 在XHTML页面中,我调用了一个对象。此对象存储用户已登录 在我的申请中 当我输入url时,会发生异常,因为对象为null 但当我映射url时,对象返回存储在用户中的值
发生了什么事 这是我的webapp日志:Jsf 2 当URL未由PrettyFaces映射时,身份验证(Spring安全性)对象为空 我在应用程序中使用JSF(Primefaces)、Spring、Spring Security、MyBatis和PrettyFaces 我有一个URL不是由PrettyFaces映射的 此url重定向到XHTML页面。XHTML页面与Spring安全性映射,并与我的应用程序的角色关联 在XHTML页面中,我调用了一个对象。此对象存储用户已登录 在我的申请中 当我输入url时,会发生异常,因为对象为null 但当我映射url时,对象返回存储在用户中的值,jsf-2,spring-security,prettyfaces,Jsf 2,Spring Security,Prettyfaces,发生了什么事 这是我的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.Pretty
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)
这是我对springsecuriy和pretyface的配置
<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>
springSecurityFilterChain
org.springframework.web.filter.DelegatingFilterProxy
springSecurityFilterChain
/*
向前地
漂亮的过滤器
com.ocpsoft.pretty.PrettyFilter
漂亮的过滤器
/*
向前地
要求
错误
PD:我已经把主题改得更明确了不,在使用PrettyFaces时,您肯定不需要映射每个URL。如果传入的请求与任何映射都不匹配,它将被简单地转发到应用程序,而PrettyFaces不会对其进行任何处理
因此,您的异常是由其他原因引起的。如果您发布完整的stacktrace,并显示一条未本地化的错误消息,我可以查看一下 您只将spring安全过滤器配置为处理转发请求,它还需要处理其他类型:
<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>
<dispatcher>REQUEST</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
springSecurityFilterChain
org.springframework.web.filter.DelegatingFilterProxy
springSecurityFilterChain
/*
向前地
要求
包括
错误
如果框架未处理请求,则PrettyFaces不会转发该请求,因此,分派类型仍为request,并且Spring安全筛选器从不执行。springSecurityFilterChain的配置使其仅应用于转发的请求(如PrettyFaces创建的请求)。您应该将所有请求都发送到过滤器,以便它也可以被正常请求调用。