CAS 4.X 开启OAuth2.0协议

官网的内容已经关闭,这里留存记录。

首先这个是基于cas4.1.7版本,原则上4.x都可以,这个与5.x和现在的6.x有很大区别。

1.基础配置
cas.serverName=http://demo.cn/cas
cas.casServerLoginUrl=http://demo.cn/cas/login

2.pom文件引入oauth

<dependency> <groupId>org.jasig.cas</groupId> <artifactId>cas-server-support-oauth</artifactId> <version>${project.version}</version> </dependency>
3.cas-servlet.xml新增配置
<bean id="oauth20WrapperController" class="org.jasig.cas.support.oauth.web.OAuth20WrapperController" p:loginUrl="http://demo.cn/cas/login" p:servicesManager-ref="servicesManager" p:ticketRegistry-ref="ticketRegistry" p:timeout="7200" />

4.web.xml
<servlet-mapping> <servlet-name>cas</servlet-name> <url-pattern>/oauth2.0/*</url-pattern> </servlet-mapping>
5.cas-server-webapp新增service json文件
{ "@class" : "org.jasig.cas.support.oauth.services.OAuthRegisteredService", "clientId": "key", "clientSecret": "secret", "bypassApprovalPrompt": false, "serviceId" : "^http://demo2.cn", "name" : "Oauth", "id" : 10000005 }

浏览器输入
http://demo.cn/cas/oauth2.0/authorize?response_type=authorization_code&client_id=admin&redirect_uri=http://demo2.cn

/oauth2.0/accessToken grant_type=authorization_code&client_id=ID&client_secret=SECRET
&code=CODE&redirect_uri=CALLBACK 传统模式根据authCode获取accesstoken
/oauth2.0/accessToken grant_type=password&client_id=ID&client_secret=SECRET
&username=USERNAME&password=PASSWORD 返回accessToken
/oauth2.0/accessToken grant_type=client_credentials&client_id=client&client_secret=secret 返回accessToken
/oauth2.0/accessToken grant_type=refresh_token&client_id=ID&client_secret=SECRET
&refresh_token=REFRESH_TOKEN 刷新之后返回新的accessToken

https://blog.csdn.net/weixin_42073629/article/details/107650970

posted @ 2023-10-27 09:49  一日游戏  阅读(192)  评论(0)    收藏  举报