0

我部署了支持 OAuth 协议的 CAS 服务器

我已将此代码添加到我的 deployerConfigContext.xml

<bean class="org.jasig.cas.services.RegisteredServiceImpl">
    <property name="id" value="1"/>
    <property name="name" value="the_key"/>
    <property name="description" value="the_secret"/>
    <property name="theme" value="my great webapp for OAuth"/>
    <property name="serviceId" value="http://localhost:8080/cas/login"/>
    <property name="evaluationOrder" value="10000001"/>
    <property name="allowedAttributes">
        <list>
            <!-- facebook -->
            <value>the_key</value>
            <value>the_secret</value>
        </list>
    </property>
</bean>     

<bean id="ticketRegistry" class="org.jasig.cas.ticket.registry.DefaultTicketRegistry">
    <constructor-arg index="0" value="1000"/>
    <constructor-arg index="1" value="1"/>
    <constructor-arg index="2" value="16"/>
</bean>

定义我的 ticketRegistry 所以我的 OAuth 客户端密码密钥是 the_secret 和 the_key

但是当我加载这个 URLhttp://localhost:8080/cas/oauth2.0/accessToken?client_secret=the_secret&grant_type=refresh_token&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Fcas%2Flogin&code=0&client_id=the_key来测试我的 OAuth 协议时,我遇到了这个异常

<Code Expired 0>

为什么以及如何解决它?

4

1 回答 1

1

您需要定义两个 CAS 服务:

  1. 一种用于 OAuth 服务器支持的内部机制(使用 CASservice.serviceId = http://localhost:8080/cas/oauth2.0/callbackAuthorize
  2. 一个用于您要授权的每个客户端 OAuth 应用程序(使用 oauthclient.key = CASservice.name,oauthclient.secret = CASservice.description,oauthclient.redirect_uri 应以 CASservice.serviceId 开头)。

文档:https ://wiki.jasig.org/display/CASUM/OAuth+server+support ,第 3 部分...

于 2012-10-29T06:29:27.450 回答