飞污熊博客

静下心来做一件事

容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。 开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机、物理服务器或公有云主机上运行。

可以将容器想象成运输行业中的集装箱,Docker 将集装箱思想运用到软件打包上,为代码提供了一个基于容器的标准化运输系统。 Docker 可以将任何应用及其依赖打包成一个轻量级、可移植、自包含的容器。容器可以运行在几乎所有的操作系统上。

其实,”集装箱” 和 “容器” 对应的英文单词都是 “Container”。”容器” 是国内约定俗成的叫法, 可能是因为容器比集装箱更抽象,更适合软件领域的原故吧。Docker 的 Logo 不就是一条鲸鱼上面一堆集装箱吗?

第一篇我先搭建实验环境,尽快让一个容器运行起来,我使用的操作系统是CentOS7.2,安装的是免费的社区版CE。

阅读全文 »

如果每个Web应用有自己的登录界面,不想使用Cas服务器的登录界面。也不需要改动Cas服务器去适配各种客户端登录界面需求。 那么可以通过使用Restful API的方式进行SSO认证,这是最佳实践。

阅读全文 »

默认情况下,cas是将票据信息存储到内存中,我们可以将票据存储到redis服务器中,cas采用的spring data redis 来控制redis

将票据存储到redis需要两个步骤:

  1. 配置cas关于redis的依赖
  2. 配置application.properties,添加redis的配置信息

接下来讲解如何通过Redis存储Ticket,以及通过Restful API方式验证Ticket。

阅读全文 »

cas客户端接入称之为service,必须经过cas的允许才能进行登录,当然不同的客户端可以做不同的事情,其中包括:

  1. 自定义主题(各客户端登录页自定义)
  2. 自定义属性(服务属性(固定)与用户属性(动态))
  3. 自定义协议
  4. 自定义登录后跳转方式,跳转路径
  5. 授权策略(拒绝属性、可登录时间范围限制、等等)
  6. 拒绝授权模式
阅读全文 »

现在开始对CasServer进行二次开发,比如如何设置数据库连接,如何使用数据库的用户名和密码登录, 如何使用Restful API方式实现SSO,如何自定义服务,如何自定义登陆界面等等。接下来将逐步介绍。

Cas官方说明,如果你想对它默认项目有所更改,那么就使用覆盖它路径的方式进行。

更改CAS的配置既可以修改cas.properties文件,也能修改默认的application.properties。 为了配置集中处理,我会把默认的application.properties配置文件提出来,只修改它,并把cas.properties内容都移到里面去。

阅读全文 »

这篇开始写一个系列,讲解如何使用配置和使用CAS实现单点登录。

我的环境:

  • CAS-server:5.3.X
  • Maven:3.6.0
  • JDK:1.8
  • cas-server域名:cas.server.com
  • tomcat服务器:SpringBoot内置/tomcat8
  • 操作系统:华为云主机上CentOS 7

Cas支持Gradle和Maven两种编译方式,使用SpringBoot构建,我这里使用Maven的方式。

阅读全文 »

所谓单点登录(SSO),就是同平台的诸多应用登陆一次,下一次就免登陆的功能。就像你在知乎首页登录一次, 下一次再访问知乎专栏或是知乎日报就可以免去登录操作。

实现SSO的方式有很多,现在主流的就是CAS这种基于session的单点登录形式。 CAS是一个单点登录框架,开始是由耶鲁大学的一个组织开发,后来归到apereo去管。 CAS也是开源,遵循着apache 2.0协议,代码目前是在github上管理。

接下来我会写一个CAS的系列教程,这篇是一个原理篇,后面系列教程是实际操作篇。

阅读全文 »

今天一个传递依赖问题搞了我半天,终于搞明白原因了。一个jar包A依赖了httpclient,然后另一个jar包B引入A, 在IDEA里面只能看到依赖A,不管咋样都看不到依赖httpclient。

我在IDEA的项目B里面,打包后在控制台发现一个告警:

1
2
the POM for A is invalid, transitive dependencies (if any) will not be available, 
enable debug logging for more details

原来是jar包A的pom依赖有问题。

阅读全文 »