欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CAS之5.2x版本之OAuth2.0-yellowcong

程序员文章站 2022-05-05 12:17:28
...

为啥,我们可以直接实现cas的登录后,还要搞一下OAuth的配置,这是由于服务中,需要类似与QQ,百度,csdn等服务授权方式,我这几天在搞gerrit,需要结合cas,所以需要这个oauth的认证,cas5.2实现oauth认证的方式,主要有下面几个步骤:1、配置pom.xml,添加cas-server-support-oauth-webflow的依赖包,2、配置application.properties设置当前cas服务器的名称,3、添加json的授权服务,4、添加界面的授权服务,5、测试授权。

代码地址

这里写代码片

1、配置pom.xml

<!-- 开启oauth支持 -->
<dependency>
  <groupId>org.apereo.cas</groupId>
  <artifactId>cas-server-support-oauth-webflow</artifactId>
  <version>${cas.version}</version>
</dependency>

2、配置application.properties

#配置oauth2.0授权服务的信息
#配置授权,需要配置 server name的信息,不然就会跑到
cas.server.name=http://yellowcong.com:${server.port}
cas.server.prefix=$`这里写代码片`{cas.server.name}

3、添加json的服务

创建service-auth-all-1005.json文件,创建一个授权的服务,来接入服务。其中,每一个授权服务的clientIdclientSecret是唯一的,通过serviceId来过滤访问的服务

{
  "@class" : "org.apereo.cas.support.oauth.services.OAuthRegisteredService",
  "clientId": "1100660",
  "clientSecret": "e65fa828bedf4a0392cf1e005921dab6",
  "bypassApprovalPrompt": false,
  "generateRefreshToken": false,
  "serviceId" : "^(http|https)://*",
  "name" : "My OAuth service ",
  "id" : 100,
  "attributeReleasePolicy" : {
    "@class" : "org.apereo.cas.services.ReturnAllAttributeReleasePolicy"
  }
}

4、添加界面的service

如果只添加了oauth的服务,没有添加界面的服务,也是会报没有授权服务的错的。

{
    "@class": "org.apereo.cas.services.RegexRegisteredService",
    "serviceId" : "^(http|https)://*",
    "name": "all",
    "id": 1005,
    "description": "allow all service",
    "evaluationOrder": 1005,
    "theme":"apereo",
    "attributeReleasePolicy": {
        "@class": "org.apereo.cas.services.ReturnAllAttributeReleasePolicy"
    }
}

5、测试

测试访问授权接口

http://yellowcong.com:8080/oauth2.0/authorize

可以看到访问授权服务的地址,直接就跳转到了目标地址。
CAS之5.2x版本之OAuth2.0-yellowcong

常见问题

1、跳转到https://cas.example.org:8443服务器

可以发现,服务莫名其妙的跳转到了cas.example.org:8443的服务器,导致这个问题的原因,就是在application.properties 中,没有配置cas.server.namecas.server.prefix

CAS之5.2x版本之OAuth2.0-yellowcong

解决办法,在application.properties 中,添加如下配置

#配置oauth2.0授权服务的信息
#配置授权,需要配置 server name的信息,不然就会跑到
cas.server.name=http://yellowcong.com:${server.port}
cas.server.prefix=${cas.server.name}

2、未认证授权的服务

导致服务没有配置的问题,一般都是授权中,没有添加service的json,还有第二种情况,就是json文件中配置有毛病。
CAS之5.2x版本之OAuth2.0-yellowcong

参考文章

1、OAuth/OpenID Authentication

相关标签: cas