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 です

しかし、この URL をロードしhttp://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

2 つの CAS サービスを定義する必要があります。

  1. 1 つは OAuth サーバー サポートの内部メカニズム用 (CASservice.serviceId = を使用http://localhost:8080/cas/oauth2.0/callbackAuthorize)
  2. 承認するクライアント OAuth アプリケーションごとに 1 つ (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 に答える