Jboss 服务票验证成功后的Jasig CAS-404代码

Jboss 服务票验证成功后的Jasig CAS-404代码,jboss,http-status-code-404,cas,jasig,Jboss,Http Status Code 404,Cas,Jasig,我们目前正试图在JBoss EAP 6.3.0服务器上部署CAS 4.0.1 根据调用CAS进行身份验证的服务,对登录webflow进行了定制,以便重定向到特定的登录表单。根据这些形式,我们使用特定的身份验证处理程序和特定的凭证模型。此外,配置相当标准 目前,我们遇到了以下问题:当用户尝试访问由CAS保护的服务时,他被正确重定向到门户,并呈现预期的登录视图;成功登录后,服务票证被传递到服务端的身份验证过滤器(标准j_spring_cas_security_check),然后该过滤器根据cas的票

我们目前正试图在JBoss EAP 6.3.0服务器上部署CAS 4.0.1

根据调用CAS进行身份验证的服务,对登录webflow进行了定制,以便重定向到特定的登录表单。根据这些形式,我们使用特定的身份验证处理程序和特定的凭证模型。此外,配置相当标准

目前,我们遇到了以下问题:当用户尝试访问由CAS保护的服务时,他被正确重定向到门户,并呈现预期的登录视图;成功登录后,服务票证被传递到服务端的身份验证过滤器(标准j_spring_cas_security_check),然后该过滤器根据cas的票证注册表成功验证服务票证。我们在日志中看到CAS正在呈现cas2ServiceSuccessView;但是,用户没有传递预期的XML响应,而是被重定向到登录表单。 然后我们确认,在cas2ServiceSuccessView之后,我们实际上收到了一个404错误。。。你知道什么会引发这种行为/我们会做错什么吗

请注意,无论如何调用CAS进行ST验证,我们都会收到相同的错误:无论是通过/serviceValidate?ticket=ST-YYY&service=XXX手动执行,还是通过服务端的/j_spring_CAS_security_检查执行

编辑:我们在Tomcat7上运行CAS时有相同的行为

提前谢谢

下面是我们获得的调试日志:

08:54:10,806 DEBUG [org.springframework.web.servlet.DispatcherServlet] (http-/0.0.0.0:8080-7) Last-Modified value for [/cas/serviceValidate] is: -1
08:54:10,809 INFO  [org.perf4j.TimingLogger] (http-/0.0.0.0:8080-7) start[1433314450807] time[2] tag[VALIDATE_SERVICE_TICKET]
08:54:10,810 INFO  [com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager] (http-/0.0.0.0:8080-7) Audit trail record BEGIN
=============================================================
WHO: audit:unknown
WHAT: ST-3-uecoOwdbdIn4bc2WvXfe-cas-test
ACTION: SERVICE_TICKET_VALIDATED
APPLICATION: CAS
WHEN: Wed Jun 03 08:54:10 CEST 2015
CLIENT IP ADDRESS: 127.0.0.1
SERVER IP ADDRESS: 127.0.0.1
=============================================================


08:54:10,810 DEBUG [org.springframework.validation.DataBinder] (http-/0.0.0.0:8080-7) DataBinder requires binding of required fields [renew]
08:54:10,811 DEBUG [org.springframework.web.servlet.DispatcherServlet] (http-/0.0.0.0:8080-7) Rendering view [org.springframework.web.servlet.view.InternalResourceView: name 'cas2ServiceSuccessView'; URL [/WEB-INF/view/jsp/cas2ServiceSuccessView.jsp]] in DispatcherServlet with name 'cas'
08:54:10,811 DEBUG [org.springframework.web.servlet.view.InternalResourceView] (http-/0.0.0.0:8080-7) Added model object 'assertion' of type [org.jasig.cas.validation.ImmutableAssertion] to request in view with name 'cas2ServiceSuccessView'
08:54:10,811 DEBUG [org.springframework.web.servlet.view.InternalResourceView] (http-/0.0.0.0:8080-7) Removed model object 'pgtIou' from request in view with name 'cas2ServiceSuccessView'
08:54:10,811 DEBUG [org.springframework.web.servlet.view.InternalResourceView] (http-/0.0.0.0:8080-7) Forwarding to resource [/WEB-INF/view/jsp/cas2ServiceSuccessView.jsp] in InternalResourceView 'cas2ServiceSuccessView'
08:54:10,812 DEBUG [org.springframework.web.servlet.DispatcherServlet] (http-/0.0.0.0:8080-7) Successfully completed request
08:54:10,814 DEBUG [org.springframework.web.servlet.DispatcherServlet] (http-/0.0.0.0:8080-7) DispatcherServlet with name 'cas' processing GET request for [/cas/login]
08:54:10,814 DEBUG [org.springframework.webflow.mvc.servlet.FlowHandlerMapping] (http-/0.0.0.0:8080-7) Mapping request with URI '/cas/login' to flow with id 'login'

。。。当然,原因是相当愚蠢的:不知何故(我必须查看我们的合并/git历史记录),cas-servlet.xml中定义的viewsolverbean没有basenames属性集。

在SpringSecurity 4.x中,CasAuthenticationFilter的defaultFilterProcessesUrl路径被更改。
因此,在配置中将“/j_spring\u cas\u security\u check”更改为“/login/cas”。

这有助于我在更改URL后使用spring security 4.event,但它不起作用。使用spring boot时使用相同的配置,但没有spring boot时无法使用。请详细说明