博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CAS5.3服务器搭建
阅读量:5987 次
发布时间:2019-06-20

本文共 2561 字,大约阅读时间需要 8 分钟。

hot3.png

单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 

当我们使用SpringCloud搭建分布式系统后,这些子系统是分别部署在不同的服务器中,那么使用传统方式的session是无法解决的,我们需要使用相关的单点登录技术来解决。 
CAS的原理如下 

从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client。CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server 
SSO单点登录访问流程主要有以下步骤: 
1. 访问服务:SSO客户端发送请求访问应用系统提供的服务资源。 
2. 定向认证:SSO客户端会重定向用户请求到SSO服务器。 
3. 用户认证:用户身份认证。 
4. 发放票据:SSO服务器会产生一个随机的Service Ticket。 
5. 验证票据:SSO服务器验证票据Service Ticket的合法性,验证通过后,允许客户端访问服务。 
6. 传输用户信息:SSO服务器验证票据通过后,传输用户认证结果信息给客户端。

接下来搭建CAS5.3 

首先到官方的gihub上下载cas,注意最新的master分支使用的需要java11,该分支使用Gradle工程 
由于我使用的是java8,就使用基于5.3版本的,该版本使用Maven工程 
CAS4.x的server是基于Spring的,模版引擎使用的是JSP, 
CAS5.X之后使用的是基于SpringBoot的,模版引擎使用Thymeleaf,Tymeleaf比JSP要优雅多了 
https://github.com/apereo/cas-overlay-template/tree/5.3 
解压后使用maven命令打包 
mvn package 
把target下生成的war包重命名为cas.war放到tomcat下 
启动tomcat 
找到解压的文件

由于CAS默认使用的是基于https协议,需要改为兼容使用http协议 

到C:\apache-tomcat-8.5.33\webapps\cas\WEB-INF\classes目录的application,properties添加如下的内容

cas.tgc.secure=false

cas.serviceRegistry.initFromJson=true
到C:\apache-tomcat-8.5.33\webapps\cas\WEB-INF\classes\services目录下的HTTPSandIMAPS-10000001.json 
修改内容如下,即添加http

  "serviceId" : "^(https|http|imaps)://.*",

兼htp修改完毕,由于https协议默认使用的端口为8443,我们修改为tomcat的8080端口 
到C:\apache-tomcat-8.5.33\webapps\cas\WEB-INF\classes目录的application,properties添加如下的内容

server.port=8080

1
由于使用的静态密码为casuser::Mellon不好记忆, 
修改密码 
到C:\apache-tomcat-8.5.33\webapps\cas\WEB-INF\classes目录的application,properties的最后面修改密码为如下

cas.authn.accept.users=admin::admin

1
CAS服务器搭建完毕,重启tomcat 
接下来搭建springboot项目的客户端

在新建的springboot项目的pom.xml添加如下依赖

        <!-- https://mvnrepository.com/artifact/net.unicon.cas/cas-client-autoconfig-support -->
        <dependency>
            <groupId>net.unicon.cas</groupId>
            <artifactId>cas-client-autoconfig-support</artifactId>
            <version>1.7.0-GA</version>
        </dependency>
在pom.xml做如下配置,配置内容意思很简单,配置内容的原理上面也说到,当访问分布式系统的资源时,会检验有没有ticket,没有ticket的话会跳转到登录界面,登录成功后要跳转回来当前访问的资源

cas:

  server-url-prefix: http://localhost:8080/cas
  server-login-url: http://localhost:8080/cas/login
  client-host-url: http://localhost:9100
  validation-type: cas

server:

  port: 9100
启动CAS @EnableCasClient

@EnableCasClient
@SpringBootApplication
public class CasStarterApplication {

    public static void main(String[] args) {

        SpringApplication.run(CasStarterApplication.class, args);
    }
}
接下来写一个rest接口测试

@RestController

public class TestController {

    @GetMapping("/test")

    public String get(){
        return "test success";
    }
}
访问localhost:9100/test 
跳转到登录界面 

输入用户密码admin:admin 就跳转到当前访问的资源 

 

转载于:https://my.oschina.net/lilinzero/blog/3029201

你可能感兴趣的文章
6.[数据结构和算法分析笔记]堆 Heap
查看>>
xshell远程时连接速度很慢的解决方法
查看>>
一款极好的轻量级C/C++集成开发工具
查看>>
一段美妙神奇的代码
查看>>
exchange 2010 relay设定
查看>>
scsi i/o error
查看>>
php+mysql手注拿shell教程【朋友给的】
查看>>
无法创建工具栏
查看>>
Android 中文api (88)——SharedPreferences
查看>>
敏捷开发
查看>>
hadoop的一些配置结果截图
查看>>
浅谈网络字节序与主机字节序
查看>>
SCCM 2012系列10 补丁分发中
查看>>
Stanford提出DeepZip:用循环神经网络进行文件无损压缩!
查看>>
Windows Server 2008域中组的转换
查看>>
写给MongoDB开发者的50条建议Tip4
查看>>
android个推消息推送,asp.net调用接口
查看>>
Windows XP 中提供的键盘快捷键列表
查看>>
数控四轴四面 CUBE 应用的软件开发
查看>>
CCNP-3 EIGRP试验3(BSCI)
查看>>