2014-07-26 36 views
5

我想配置Jasig CAS4.0与Facebook的OAuth2.0。 不使用Facebook的,默认的用户名“casuser”和密码“西瓜”是正常工作。 我换成Jasig CAS4.0,代理认证异常

<bean id="primaryAuthenticationHandler" 
      class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler"> 
     <property name="users"> 
      <map> 
       <entry key="casuser" value="Mellon"/> 
      </map> 
     </property> 
    </bean> 

<bean id="primaryAuthenticationHandler" class="org.jasig.cas.support.pac4j.authentication.handler.support.ClientAuthenticationHandler"> 
      <constructor-arg index="0" ref="clients"/> 
</bean> 

和ID = “registeredServicesList” 是

<util:list id="registeredServicesList"> 
     <bean class="org.jasig.cas.services.RegexRegisteredService" 
       p:id="0" p:name="HTTP and IMAP" 
       p:description="Allows HTTP(S) and IMAP(S) protocols" 
       p:serviceId="^(https?|imaps?)://.*" 
       p:evaluationOrder="10000001" 
       p:enabled="true" 
       p:allowedToProxy="true" 
       p:ssoEnabled="true" 
/> 

但尽管如此,从Facebook的身份验证到我的CAS服务器再到后重定向后,我应用程序中,我得到ticketValidationException。

type Exception report 

message org.jasig.cas.client.validation.TicketValidationException: 

description The server encountered an internal error that prevented it from fulfilling this request. 

exception 

javax.servlet.ServletException: org.jasig.cas.client.validation.TicketValidationException: 
     The supplied service 'https://rajan.com:2443/CasClientSimple/' is not authorized to use CAS proxy authentication. 

    org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:194) 
    org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:116) 

我应该怎么做才能解决这个问题?

回答

5

在CAS服务器的deployerConfigContext.xml里的文件,我添加了一些属性(如allowedToProxy,ssoEnables,启用)这都没有了默认情况下,它的工作。

<bean class="org.jasig.cas.services.RegisteredServiceImpl"> 
      <property name="id" value="0" /> 
      <property name="name" value="HTTP" /> 
      <property name="description" value="Only Allows HTTP Urls" /> 
      <property name="serviceId" value="https://**" /> 
      <property name="evaluationOrder" value="10000001" /> 
      <property name="enabled" value="true" /> 
      <property name="allowedToProxy" value="true" /> 
      <property name="ssoEnabled" value="true" /> 
</bean>