我正在尝试验证针对CAS的票证。我有一个工作的CAS服务器和2个服务。服务A是露天服务器,服务B是我自己的Spring Web App。
我登录B并被重定向到CAS登录,我登录,我在Web App B中就好了。一切都快乐。 我可以SSO进入Alfresco探险家就好了。 (也就是说,我点击一个链接,我已经被淹没了)All Happy。 在我的网络应用程序B中,我在露天(A)中调用RESTful api,我很伤心。 我可以把REST网址调用放到我的浏览器中,我得到了预期的结果,我很困惑。
如何从我的网络应用B调用此URL?我将票证添加到URL的末尾,如下所示:
我的Web.xml设置如下:
<filter>
<filter-name>Authentication Filter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<param-value>https://example.org:7443/cas/login</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>https://example.org:8443</param-value>
</init-param>
</filter>
<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https://example.org:7443/cas</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>https://example.org:8443</param-value>
</init-param>
</filter>
<filter>
<filter-name>Alfresco CAS Authentication Filter</filter-name>
<filter-class>org.xxx.alfresco.repository.extension.web.app.servlet.CASAuthenticationFilter</filter-class>
</filter>
使用我的过滤器映射来完成这样的web服务:
<filter-mapping>
<filter-name>Authentication Filter</filter-name>
<url-pattern>/service/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/service/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Alfresco CAS Authentication Filter</filter-name>
<url-pattern>/service/*</url-pattern>
</filter-mapping>
但是随着调试的进行,我可以看到我甚至没有进入我的CASAuthenticationFilter。错误由Cas20ProxyReceivingTicketValidationFilter开始。这是一个例外:
2014年2月10日上午1:56:17 org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter doFilter 警告:org.jasig.cas.client.validation.TicketValidationException: 机票'ST-6-ayiC6vVX3yEBQcFB12sj-xxx.org'无法识别
Any Ideas?