2013-11-09 4 views
1

두 개의 webapp에 A와 B가 통합 된 Cas가 있습니다. webapp A의 보호 된 영역에 액세스하려고하면 필터가 cas 로그인으로 리디렉션됩니다. 로그인 후 나는 webapp A로 돌아 왔고 모든 것이 잘 작동한다. webapp A에서 webapp B의 보호 영역으로 이동하면 cas 필터가 다시 로그인 양식으로 리디렉션됩니다. Tomcat 6.0.37에서도이 응용 프로그램을 사용해 보았습니다. 로그인을 다시하지 않아도 문제가 없습니다.CAS SERVICE_TICKET_NOT_CREATED 및 TGT가 JBoss 5.1.0.GA와 충돌 함

Jboss의 로그에 대해서는 잘린 TGT가 표시됩니다. 내가 CAS에 처음 로그인, 그것은 쓰기 :

 
09 nov 2013 11:14:40,533 DEBUG [org.jasig.cas.ticket.registry.DefaultTicketRegistry] Added ticket [TGT-1-KYSi1x1t1MlcefajmccwatceNEqMprKj7j5ZpVDJwtJOf5OSgA-http://localhost:8000] to registry. 
09 nov 2013 11:14:40,533 INFO [com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager] Audit trail record BEGIN 
============================================================= 
WHO: [username: myuser] 
WHAT: TGT-1-KYSi1x1t1MlcefajmccwatceNEqMprKj7j5ZpVDJwtJOf5OSgA-http://localhost:8000 
ACTION: TICKET_GRANTING_TICKET_CREATED 
APPLICATION: CAS 
WHEN: Sat Nov 09 11:14:40 CET 2013 
CLIENT IP ADDRESS: 127.0.0.1 
SERVER IP ADDRESS: 127.0.0.1 
============================================================= 

내가 로그 B 응용 프로그램에 응용 프로그램 A에서 갈 수 있습니다 :

 
09 nov 2013 11:14:54,339 DEBUG [org.jasig.cas.ticket.registry.DefaultTicketRegistry] Attempting to retrieve ticket [TGT-1-KYSi1x1t1MlcefajmccwatceNEqMprKj7j5ZpVDJwtJOf5OSgA-http] 
09 nov 2013 11:14:54,340 INFO [com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager] Audit trail record BEGIN 
============================================================= 
WHO: audit:unknown 
WHAT: http://localhost:8000/webappB/desktop.iface 
ACTION: SERVICE_TICKET_NOT_CREATED 
APPLICATION: CAS 
WHEN: Sat Nov 09 11:14:54 CET 2013 
CLIENT IP ADDRESS: 127.0.0.1 
SERVER IP ADDRESS: 127.0.0.1 
============================================================= 

당신이 볼 수 있듯이, 캐스 생성 TGT :

 
TGT-1-KYSi1x1t1MlcefajmccwatceNEqMprKj7j5ZpVDJwtJOf5OSgA-http://localhost:8000 

및 시도 는 검색 할 :

 
TGT-1-KYSi1x1t1MlcefajmccwatceNEqMprKj7j5ZpVDJwtJOf5OSgA-http 

$ {host.name}에서 char ':'와 '/'가없는 문자열로 bean DefaultUniqueTicketIdGenerator의 value 속성을 변경하는 문제를 해결했습니다.

많은 응용 프로그램에서 사용되고 다른 환경에 배포되므로 cas 구성을 변경하지 않겠습니다. Jason의 cas가 바람둥이처럼 작동하지 않는 이유는 무엇입니까? 일부 구성을 놓친 적이 있습니까?

+0

나는 cas 코드를 디버깅했으며 쿠키는 브라우저에서 올바르게 전송되었습니다. 쿠키는 표준 HttpServletRequest를 호출하는 sprinframework org.springframework.web.util.WebUtils.getCookie의 유틸리티 메소드를 사용하여 org.jasig.cas.web.support.CookieRetrievingCookieGenerator 클래스에서 검색되었습니다. 문제는 JBoss 컨테이너에 있고 cas에는 없다고 생각합니다. – lquitadamo

답변

1

속성은 일반적으로 티켓 생성에만 사용되며 실제로 호스트 이름 일 필요는 없습니다. 특히 클러스터 된 CAS 환경에서 티켓이 고유한지 확인하는 데 사용됩니다.

host.name의 프로토콜과 포트 구성 요소를 제거해보십시오. 콜론이 돌아 오는 길에서 올바르게 처리되지 않는 것으로 보입니다.

CAS 설명서 (https://wiki.jasig.org/display/CASUM/Clustering+CAS)에서 볼 수 있습니다.

+0

이것은 실제 해결책이지만 cas 설정을 변경하지 않았습니다. 문제는 https://issues.jboss.org/browse/JBAS-7372에 문서화되어 있습니다. – lquitadamo