如何在我的CAS服务器中添加Google OAuth2.0支持

时间:2014-07-27 03:13:50

标签: oauth oauth-2.0 google-oauth

我正在使用jasig cas4.0服务器。我已经在我的cas服务器中实现了Facebook oAuth2.0支持,它可以正常工作。现在,我想在同一个CAS服务器中添加Google oauth支持(Google2Client)。

1)我在console.developers.google.com中创建了一个新项目,在OAuth下创建了一个新的客户端ID,并将uri重定向到https://rajan.com:1443/cas/login(实际上指向localhost)

2)我将此添加到我的applicationcontext.xml

 <bean id="google1" class="org.pac4j.oauth.client.Google2Client">
  <property name="key" value="<<CLIENT_ID>>" />
  <property name="secret" value="<CLIENT_SECRET" />
  <property name="scope" value="email" />
  <property name="fields" value="id,name,first_name,middle_name,last_name,gender,email" />
</bean>

我还在客户端

中注册了这个bean
<bean id="clients" class="org.pac4j.core.client.Clients">
  <property name="callbackUrl" value="https://rajan.com:1443/cas/login" />
  <property name="clients">
    <list>
      <ref bean="facebook1" />
      <ref bean="google1" />

    </list>
  </property>
</bean>

3)最后,我在casLoginView.jsp

中添加了这个
<a href="${FacebookClientUrl}">Authenticate with Facebook</a> <br />
<a href="${Google2ClientUrl}">Authenticate with Google</a> <br />

但是,当我在浏览器中打开cas登录视图时,Google的href包含“https://rajan.com:1443/cas/login?service=https%3A%2F%2Frajan.com%3A2443%2FCasClientSimple%2F”而不是Google Oauth网址。 Facebook链接正常。

有人可以帮助我,我在这里失踪了。 谢谢。

1 个答案:

答案 0 :(得分:0)

我检查了Google2OauthClient。没有字段属性。

因此,只需删除上述bean中的fields属性即可。 我还使用 EMAIL_AND_PROFILE

更改了字段电子邮件