我有兩個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 =============================================================
當我從應用程序一去到App B中的日誌:
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 =============================================================
正如你所看到的,CAS產生TGT:
TGT-1-KYSi1x1t1MlcefajmccwatceNEqMprKj7j5ZpVDJwtJOf5OSgA-http://localhost:8000
,並嘗試檢索:
TGT-1-KYSi1x1t1MlcefajmccwatceNEqMprKj7j5ZpVDJwtJOf5OSgA-http
我找到了一種解決方法,使用從$ {host.name}將bean DefaultUniqueTicketIdGenerator的value屬性更改爲不帶字符':'和'/'的字符串。
我不會更改cas配置,因爲它被很多應用程序使用並部署在不同的環境中。 爲什麼cas中的jboss不能像tomcat一樣工作? 我錯過了一些配置嗎?
我已經調試過cas代碼,並且cookie被瀏覽器發送正確。該cookie是在org.jasig.cas.web.support.CookieRetrievingCookieGenerator類中使用sprinframework org.springframework.web.util.WebUtils.getCookie的實用程序方法檢索的,它調用標準的HttpServletRequest。我想這個問題是在JBoss容器中,而不是在CAS中。 – lquitadamo