关键词:
1.添加依赖
<dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-support-oauth-webflow</artifactId> <version>$cas.version</version> </dependency>
2.application.properties添加以下属性
##
# CAS_Service
#
cas.server.name=https://server.cas.com:$server.port/cas
cas.server.prefix=$cas.server.name
##
# OAuth
#
cas.authn.oauth.refreshToken.timeToKillInSeconds=2592000
cas.authn.oauth.code.timeToKillInSeconds=30
cas.authn.oauth.code.numberOfUses=1
cas.authn.oauth.accessToken.releaseProtocolAttributes=true
cas.authn.oauth.accessToken.timeToKillInSeconds=7200
cas.authn.oauth.accessToken.maxTimeToLiveInSeconds=28800
cas.authn.oauth.grants.resourceOwner.requireServiceHeader=true
cas.authn.oauth.userProfileViewType=NESTED
3.增加接入servcie的注册文件:OAUTH-1001. json
"@class" : "org.apereo.cas.support.oauth.services.OAuthRegisteredService", "clientId": "abc", "clientSecret": "xyz", "serviceId" : "^(https|http|imaps)://app1.cas.com.*", "name" : "OAuthService", "id" : 1001
这里的serviceId是通过请求过来的url中的redirect_uri来进行限制的。
4.端点介绍
启用OAuth支持后,将提供以下端点:
端点 | 描述 | 方法类型 |
/oauth2.0/authorize | 获取authCode或者token | GET |
/oauth2.0/accessToken,/oauth2.0/token | 获取accessToken | POST |
/oauth2.0/profile | 通过access_token参数获取用户信息 | GET |
5.测试
1.首先Oauth客户端使用Get请求访问以下地址,获取AuthCode:
https://server.cas.com:8443/cas/oauth2.0/authorize?response_type=code&scope=openid&client_id=abc&redirect_uri=http://app1.cas.com
client_id:为之前service中的值
redirect_uri:认证通过后的跳转地址,会根据service文件中的serviceId进行判断是否注册。
请求后,会跳转登录界面,登录成功跳转http://app1.cas.com,并返回AuthCode,如:
http://app1.cas.com/?code=OC-1-jkaGG16jVb-O8cUkMHI1RfgVuYKfs9zs
2.根据authCode获取accessToken
https://server.cas.com:8443/cas/oauth2.0/accessToken?grant_type=authorization_code&client_id=abc&client_secret=xyz&code=OC-1-jkaGG16jVb-O8cUkMHI1RfgVuYKfs9zs&redirect_uri=http://app1.cas.com
请求URL,获取响应:access_token=AT-1-TRYGjkhonoCqC5m-RKFef3ZrDBrzNUg-&expires_in=28800
3.根据AccerssToken获取用户信息
https://server.cas.com:8443/cas/oauth2.0/profile?access_token=AT-1-TRYGjkhonoCqC5m-RKFef3ZrDBrzNUg-
请求URL,获取响应如下:
"service" : "http://app1.cas.com", "attributes" : "credentialType" : "RememberMeUsernamePasswordCaptchaCredential" , "id" : "admin", "client_id" : "abc"
参考:https://blog.csdn.net/qq_34021712/article/details/82290876
cas单点登录的配置(代码片段)
1.生成安全证书Cas server默认的安全认证是基于https协议的,这就要求在应用程序和CAS Server端配置SSL协议。(当然也可以在casserver中配置让其可以用http访问)要使用https协议,就需要使用安全证书,这里我们通过JDK自带的... 查看详情
overlay方式构建cas(代码片段)
...个系列,分享一些实践中的内容。ApereoCAS是企业级的开源单点登录解决方案,单点登录洋文叫SSO,也就是实现在有多个系统的情况下,只要登录其中一个系统,访问其他系统时就无需再次登录。CAS项目托管在全球最大的同性交友... 查看详情
cas单点登录系列之极速入门于实战教程(4.2.7)(代码片段)
@目录一、SSO简介1.1单点登录定义1.2单点登录角色1.3单点登录分类二、CAS简介2.1CAS简单定义2.2CAS体系结构2.3CAS原理三、CAS服务端搭建3.1CAS支持Http登录配置3.2CAS服务端部署运行四、CAS客户端接入五、客户端极速接入一、SSO简介1.1单... 查看详情
cassso研究一:抛弃https让cas以http协议提供单点登录服务(代码片段)
本文环境:1、apache-tomcat-7.0.50-windows-x862、cas-server-3.4.113、cas-client-3.2.1将cas-server-webapp-3.4.11.war放入tomcat的webapps下,改名ROOT.war,启动tomcat,待自动解压后,进行如下修改:1、修改WEB-INF\\deployerConfigContext.xml&... 查看详情
cassso研究一:抛弃https让cas以http协议提供单点登录服务(代码片段)
本文环境:1、apache-tomcat-7.0.50-windows-x862、cas-server-3.4.113、cas-client-3.2.1将cas-server-webapp-3.4.11.war放入tomcat的webapps下,改名ROOT.war,启动tomcat,待自动解压后,进行如下修改:1、修改WEB-INF\\deployerConfigContext.xml&... 查看详情
单点登录系统cas入门(代码片段)
一、单点登录的概念 单点登录(SingleSignOn),简称为SSO。SSO是定义在多个应用系统中,用户只需要登录一次就可以访问所有的相互信任的应用系统。 当我们创建工程的子系统部署在不同的服务中的时候,使用传统的sessio... 查看详情
dataease集成cas实现用户单点登录
...以使用户在所有应用平台使用同一个用户名进行登录;而单点登录平台,可以使用户登录任一应用平台后,继续登录其他平台无需输入密码,直接进入登录后的状态。常用的单点登录协议有OIDC、OAuth2.0、SAML2、CAS等,本教程将介... 查看详情
如何在分布式环境中搭建单点登录系统|第二篇:基于oauth2.0开发sso核心代码(代码片段)
什么是SSO单点登录系统主要解决统一认证授权的问题,在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统。想要完成单点登录的效果,必须先统一管理用户信息,其他应用系统必须配... 查看详情
架构师成长记_第七周_06_cas单点登录系统构建(代码片段)
文章目录CAS单点登录系统构建(初次登录9,10步骤):创建用户全局门票,创建临时票据继续完善controller中doLogin方法测试CAS单点登录系统构建(初次登录9,10步骤):创建用户全局门票,创建临时票据继续完善controller中doLogin方法/***CAS的统一... 查看详情
sso之cas单点登录实例演示(代码片段)
...人员提供一个入门指南,一步一步演示如何实现基于CAS的单点登录。CAS的官网:http://www.jasig.org/cas 二、演示环境本文演示过程在同一个机器上的(也可以在三台实体机器或者三个的虚拟机上),环境如下:windows764位,主机... 查看详情
cas客户端流程详解(源码解析)--单点登录(代码片段)
博主之前一直使用了cas客户端进行用户的单点登录操作,决定进行源码分析来看cas的整个流程,以便以后出现了问题还不知道是什么原因导致的cas主要的形式就是通过过滤器的形式来实现的,来,贴上示例配置:1<listener>2<... 查看详情
双网隔离环境下cas单点登录的解决方案(代码片段)
阅读目录前言技术背景问题描述问题分析解决方案解决方案1:通过统一域名和DNS解决解决方案2:通过应用程序端解决解决方案3(推荐!):通过Apache/Nginx反向代理配置1:定义VirtualHost,开启反向代理配置2... 查看详情
架构师成长记_第七周_07_cas单点登录系统构建(代码片段)
CAS单点登录系统构建(初次访问:11,12步):验证临时票据继续完善controller/***CAS的统一登录接口*目的:1.登录后创建用户的全局会话->uniqueToken*2.创建用户全局门票,用以表示在CAS端是否登录->userTicket*3.创建用户的临时票据,用于会跳... 查看详情
基于cas实现sso单点登录(代码片段)
...注公众号,实用技术文章及时了解1.概述1.1.什么是SSO?单点登录(SingleSign-On,简称SSO)是目前比较流行的服务于企业业务整合的解决方案之一,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相... 查看详情
web系统之常用单点登录协议
.../密码还能接收;如果系统个数较多,用户则无法接收。单点登录则很好地解决了此问题。单点登录的原理是用户只需进行一次登录,便可访问多个系统。可用于单点登录的协议较多,下面将会简单说明一下常见的四种单点登录... 查看详情
cas单点登录入门(代码片段)
一、单点登录简介 SOO是现在企业比较流行的业务整合解决方案之一,定义解决登录,可以应用在不同系统中,用户只需要登录一次,就可以访问所有相互信任的应用系统(模块开发、同家公司不同产品等等),例如百度,旗... 查看详情
使用cas实现单点登录功能(代码片段)
目录单点登录简介CAS服务器部署上传tomcat服务器压缩到文件夹/usr/local/cas目录下,解压,修改tomcat文件夹名为tomcat修改tomcat配置文件的端口号关闭tomcat服务器,把CAS的war包放入tomcat的webapps目录当中后再启动tomcat服务器对war包时行... 查看详情
架构师成长记_第七周_09_cas单点登录系统构建(代码片段)
CAS单点登录系统构建(二次访问)完善controller(最终)packagecom.beyond.controller;importcom.beyond.pojo.Users;importcom.beyond.pojo.vo.UsersVO;importcom.beyond.service.UserService;importcom.beyond.utils.BEYONDJSONResult; 查看详情