Jasig CAS — код 404 после успешной проверки билета службы

В настоящее время мы пытаемся развернуть CAS 4.0.1 на сервере JBoss EAP 6.3.0.

Веб-процесс входа был настроен для перенаправления на определенную форму входа в зависимости от службы, вызывающей CAS для аутентификации. В зависимости от этих форм мы используем определенные обработчики аутентификации и определенную модель учетных данных. Кроме того, конфигурация достаточно стандартна.

На данный момент мы столкнулись со следующей проблемой: когда пользователь пытается получить доступ к службе, защищенной CAS, он правильно перенаправляется на портал, и отображается ожидаемое представление входа в систему; после успешного входа сервисный билет доставляется фильтру проверки подлинности на стороне сервиса (стандартный j_spring_cas_security_check), который затем успешно проверяет его на соответствие реестру билетов CAS. Мы видим в логах, что CAS рендерит cas2ServiceSuccessView; однако вместо доставки ожидаемого XML-ответа пользователь перенаправляется на форму входа. Затем мы подтвердили, что на самом деле получили ошибку 404 после cas2ServiceSuccessView... Любая идея, что могло вызвать такое поведение/что мы могли сделать неправильно?

Обратите внимание, что мы получаем одну и ту же ошибку независимо от того, как мы вызываем CAS для проверки ST: вручную ли через /serviceValidate?ticket=ST-YYY&service=XXX или через /j_spring_cas_security_check на стороне службы...

Изменить: у нас такое же поведение при запуске CAS на Tomcat 7.

Заранее спасибо.

Ниже журналы отладки, которые мы получаем:

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'

person veebee    schedule 03.06.2015    source источник


Ответы (2)


В SpringSecurity 4.x путь по умолчаниюFilterProcessesUrl для CasAuthenticationFilter изменен. Поэтому измените «/j_spring_cas_security_check» на «/login/cas» в конфигурации.

person xperjune    schedule 11.12.2015
comment
Это помогло мне использовать Spring Security 4. - person Julian L.; 17.02.2016
comment
событие после изменения URL-адреса не работает. Та же конфигурация работает с весенней загрузкой, но не работает без весенней загрузки - person Ravi MCA; 20.10.2019

... и, конечно же, причина была довольно глупой: каким-то образом (мне нужно посмотреть на нашу историю слияния/git) bean-компонент viewResolver, определенный в cas-servlet.xml, не имел basenames.

person veebee    schedule 04.06.2015
comment
Не могли бы вы уточнить - person Ravi MCA; 20.10.2019