教你实现 SSO 单点登录
推荐关注
扫码关注“后端架构师”,选择“星标”公众号
重磅干货,第一时间送达!
责编:架构君 | 来源:顶级架构师
责编:架构君 | 来源:顶级架构师
上一篇好文:牛逼啊!一款在线爬虫系统,不写代码即可完成爬虫!
大家好,我是后端架构师。
CAS具有以下的特点:
开源的企业级单点登录解决方案 CAS Server为需要独立部署的web应用 CAS Client支持非常多的客户端(这里指单点登录系统中的各个web应用),包括 Java、.Net 、ISAPI、Php、Perl、uPortal、Acegi、Ruby、VBScript等客户端 另外,搜索公众号后端架构师后台回复“商城”,获取一份惊喜礼包。
有了CAS,我们的系统架构就演变成下面这样的:
从架构上可以看出,CAS包含两个部分:CAS Server和CAS Client.
CAS Server需要独立部署,主要负责对用户的认证工作,CAS Client负责处理 对客户端受保护资源的访问请求,需要登录,重定向到CAS Server。
下面,我们一步步搭建CAS实现SSO.
1.3. 开发环境要求
Jdk1.8+ maven3.6 idea tomcat9.0+ windows10
2. CAS Server服务器端
2.1. CAS服务器端软件包下载
下载版本为5.3
下载服务器的overlay地址: https://github.com/apereo/cas-overlay-template/tree/5.3
压缩包:cas-overlay-template-5.3.zip
解压好后用命令:build.cmd package
然后用编译的目录查看war包:
2.2. 服务器端的基本部署和测试
将war包放到tomcat的webapp中,然后启动tomcat
访问地址:http://localhost:8080/cas
或者 http://localhost:8080/cas/login
默认用户名和密码在\webapps\cas\WEB-INF\classes\application.properties
里面 用户名:casuser 密码:Mellon
CAS服务端启动成功 2.3. CAS Server服务器配置
2.3.1 去除https认证
CAS默认使用的是HTTPS协议,如果使用HTTPS协议需要SSL安全证书(需向特定的机构申请和购买)。如果对安全要求不高或是在开发测试阶段,可使用HTTP协议。我们这里讲解通过修改配置,让CAS使用HTTP协议。
修改CAS服务端配置文件:
\cas\WEB-INF\classes\application.properties
里添加如下内容:
cas.tgc.secure=false
cas.serviceRegistry.initFromJson=true
\cas\WEB-INF\classes\services
目录下的HTTPSandIMAPS-10000001.json修改内容如下:
"serviceId" : "^(https|http|imaps)://.*"
3. CAS Client客户端配置(自己项目)
Pom文件的依赖即pom.xml。
<dependency>
<groupId>net.unicon.cas</groupId>
<artifactId>cas-client-autoconfig-support</artifactId>
<version>2.1.0-GA</version>
</dependency>
application.yml配置文件
客户端1
server:
port: 9010
cas:
server-url-prefix: http://localhost:8080/cas
server-login-url: http://localhost:8080/cas/login
client-host-url: http://localhost:9010
validation-type: cas3
注:启动类追加开启CAS的注解@EnableCasClient
项目中新建一个测试类
iimport io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Api(description = "SSO-CAS的测试")
public class TestController {
@GetMapping("/test1")
public String test1(){
return "test1....";
}
}
客户端2
server:
port: 9011
cas:
server-url-prefix: http://localhost:8080/cas
server-login-url: http://localhost:8080/cas/login
client-host-url: http://localhost:9011
validation-type: cas3
注:启动类追加开启CAS的注解@EnableCasClient
项目中新建一个测试类
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Api(description = "SSO-CAS的测试")
public class TestController {
@GetMapping("/test2")
public String test1(){
return "test2....";
}
}
客户端1,客户端2和cas服务器搭建好之后,接下来我们进行测试:
1.首先启动tomcat服务器中的CAS Server。另外,搜索公众号顶级算法后台回复“算法心得”,获取一份惊喜礼包。
2.分别启动客户端1和客户端2,然后在浏览器地址栏输入客户端1的地址http://localhost:9010/test1
在不登录的状态,在浏览器的地址栏继续输入客户端2的地址:http://localhost:9011/test2
当我们在其中一个登录界面登录账号后(假设登录客户端2)就会跳转到登陆后的界面,如下图:
我们再次在浏览器窗口重新输入客户端1,http://localhost:9010/test1
,或者在刚刚输入客户端页面重新刷新,不用登录即可进入页面,如下图:
以上就是单点登录的测试。
欢迎大家进行观点的探讨和碰撞,各抒己见。如果你有疑问,也可以找我沟通和交流。扩展:接私活儿
上一篇好文:牛逼啊!一款在线爬虫系统,不写代码即可完成爬虫!
大家好,我是后端架构师。
CAS具有以下的特点:
开源的企业级单点登录解决方案 CAS Server为需要独立部署的web应用 CAS Client支持非常多的客户端(这里指单点登录系统中的各个web应用),包括 Java、.Net 、ISAPI、Php、Perl、uPortal、Acegi、Ruby、VBScript等客户端 另外,搜索公众号后端架构师后台回复“商城”,获取一份惊喜礼包。
有了CAS,我们的系统架构就演变成下面这样的:
从架构上可以看出,CAS包含两个部分:CAS Server和CAS Client.
CAS Server需要独立部署,主要负责对用户的认证工作,CAS Client负责处理 对客户端受保护资源的访问请求,需要登录,重定向到CAS Server。
下面,我们一步步搭建CAS实现SSO.
1.3. 开发环境要求
Jdk1.8+ maven3.6 idea tomcat9.0+ windows10
2. CAS Server服务器端
2.1. CAS服务器端软件包下载
下载版本为5.3
下载服务器的overlay地址: https://github.com/apereo/cas-overlay-template/tree/5.3
压缩包:cas-overlay-template-5.3.zip
解压好后用命令:build.cmd package
然后用编译的目录查看war包:
2.2. 服务器端的基本部署和测试
将war包放到tomcat的webapp中,然后启动tomcat
访问地址:http://localhost:8080/cas
或者 http://localhost:8080/cas/login
默认用户名和密码在\webapps\cas\WEB-INF\classes\application.properties
里面 用户名:casuser 密码:Mellon
2.3. CAS Server服务器配置
2.3.1 去除https认证
CAS默认使用的是HTTPS协议,如果使用HTTPS协议需要SSL安全证书(需向特定的机构申请和购买)。如果对安全要求不高或是在开发测试阶段,可使用HTTP协议。我们这里讲解通过修改配置,让CAS使用HTTP协议。
修改CAS服务端配置文件:
\cas\WEB-INF\classes\application.properties
里添加如下内容:
cas.tgc.secure=false
cas.serviceRegistry.initFromJson=true
\cas\WEB-INF\classes\services
目录下的HTTPSandIMAPS-10000001.json修改内容如下:
"serviceId" : "^(https|http|imaps)://.*"
3. CAS Client客户端配置(自己项目)
Pom文件的依赖即pom.xml。
<dependency>
<groupId>net.unicon.cas</groupId>
<artifactId>cas-client-autoconfig-support</artifactId>
<version>2.1.0-GA</version>
</dependency>
application.yml配置文件
客户端1
server:
port: 9010
cas:
server-url-prefix: http://localhost:8080/cas
server-login-url: http://localhost:8080/cas/login
client-host-url: http://localhost:9010
validation-type: cas3
注:启动类追加开启CAS的注解@EnableCasClient
项目中新建一个测试类
iimport io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Api(description = "SSO-CAS的测试")
public class TestController {
@GetMapping("/test1")
public String test1(){
return "test1....";
}
}
客户端2
server:
port: 9011
cas:
server-url-prefix: http://localhost:8080/cas
server-login-url: http://localhost:8080/cas/login
client-host-url: http://localhost:9011
validation-type: cas3
注:启动类追加开启CAS的注解@EnableCasClient
项目中新建一个测试类
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Api(description = "SSO-CAS的测试")
public class TestController {
@GetMapping("/test2")
public String test1(){
return "test2....";
}
}
客户端1,客户端2和cas服务器搭建好之后,接下来我们进行测试:
1.首先启动tomcat服务器中的CAS Server。另外,搜索公众号顶级算法后台回复“算法心得”,获取一份惊喜礼包。
2.分别启动客户端1和客户端2,然后在浏览器地址栏输入客户端1的地址http://localhost:9010/test1
在不登录的状态,在浏览器的地址栏继续输入客户端2的地址:http://localhost:9011/test2
当我们在其中一个登录界面登录账号后(假设登录客户端2)就会跳转到登陆后的界面,如下图:
我们再次在浏览器窗口重新输入客户端1,http://localhost:9010/test1
,或者在刚刚输入客户端页面重新刷新,不用登录即可进入页面,如下图:
以上就是单点登录的测试。
欢迎大家进行观点的探讨和碰撞,各抒己见。如果你有疑问,也可以找我沟通和交流。扩展:接私活儿
欢迎有需要的同学试试,如果本文对您有帮助,也请帮忙点个 赞 + 在看 啦!❤️
在 GitHub猿 还有更多优质项目系统学习资源,欢迎分享给其他同学吧!
PS:如果觉得我的分享不错,欢迎大家随手点赞、转发、在看。
最后给读者整理了一份BAT大厂面试真题,需要的可扫码加微信备注:“面试”获取。
欢迎有需要的同学试试,如果本文对您有帮助,也请帮忙点个 赞 + 在看 啦!❤️
在 GitHub猿 还有更多优质项目系统学习资源,欢迎分享给其他同学吧!
PS:如果觉得我的分享不错,欢迎大家随手点赞、转发、在看。
最后给读者整理了一份BAT大厂面试真题,需要的可扫码加微信备注:“面试”获取。
版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!
版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!
END
最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。在这里,我为大家准备了一份2021年最新最全BAT等大厂Java面试经验总结。
别找了,想获取史上最全的Java大厂面试题学习资料
扫下方二维码回复「面试」就好了
历史好文:
基于SpringBoot 的CMS系统,拿去开发企业官网真香
一款数据可视化分析平台,自由制作任何您想要的数据看板,支持接入SQL、CSV、Excel、HTTP接口、JSON等多种数据源!
比 Navicat 还要好用,功能还很强大的数据库管理工具!
Docker + IntelliJ IDEA,助你提升 10 倍生产力!
扫码关注“后端架构师”,选择“星标”公众号
别找了,想获取史上最全的Java大厂面试题学习资料
扫下方二维码回复「面试」就好了
历史好文:
基于SpringBoot 的CMS系统,拿去开发企业官网真香
一款数据可视化分析平台,自由制作任何您想要的数据看板,支持接入SQL、CSV、Excel、HTTP接口、JSON等多种数据源!
比 Navicat 还要好用,功能还很强大的数据库管理工具!
Docker + IntelliJ IDEA,助你提升 10 倍生产力!
扫码关注“后端架构师”,选择“星标”公众号