当前位置:网站首页 > 技术博客 > 正文

单点登录 cas oauth2



大浪淘沙,沉者为金

Cas-Server官网:

https://github.com/apereo/cas

进入官网,可以看到版本有很多,主要区别为:

3.x:web版本

4.x:maven版本

5.x:gradle版本

一般4.x用的比较多。
在这里插入图片描述

高版本:

自己打包的话,命令为:

 

在这里插入图片描述

弱水三千,只取一瓢

下载好后,打开发现文件非常多。

都不要去看,直接找到module目录下的cas-server-webapp-4.0.0.war。

将war包放到一个干净的Tomcat中(以后出错,可以排除tomcat本身问题报错)。

Tomcat官网:

https://tomcat.apache.org/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

最常用的三个配置文件

deployerConfigContext.xml

1、文件里有内置用户casuser/Mellon,搜索Bean:primaryAuthenticationHandler,即可找到。不使用自己的数据库,直接登录。

cas.properties

1、ticket命名。

2、数据源。

web.xml

1、开启restful接口。

·························································································

最常用的三个JSP页面

最常修改的三个JSP页面,登录界面,登录成功界面,退出界面。

说的牛逼一点,就是自定义认证界面,自定义注销界面。

casLoginView.jsp

路径:casWEB-INFviewjspdefault䗊sLoginView.jsp

Cas认证登录界面。修改登录界面就是修改这个文件。

casGenericSuccess.jsp

路径:casWEB-INFviewjspdefault䗊sGenericSuccess.jsp

路径根据版本不同,是不一样的,但是文件名称是一样的。

用户认证通过进入的页面。

casLogoutView.jsp

路径:casWEB-INFviewjspdefault䗊sLogoutView.jsp

退出Cas-Server时,进入的页面。

1、修改Bean,primaryAuthenticationHandler。

原先这个是内置用户,将它替换为下边。

 

2、增加Bean,passwordEncoder与dataSource。

 

3、加入jar包。
在这里插入图片描述

看下边四个链接,都是https开头的。

https://blog.csdn.net/

https://account.aliyun.com/

https://www.jd.com/

https://www.taobao.com/

厉害一点的网站都是https,注重保密。

我们不厉害,所以我们关掉它,不使用HTTPS协议。

1、deployerConfigContext.xml文件,修改为false。

 

2、deployerConfigContext.xml文件,p:serviceId增加http(不加不会报错,6.x版本要求加上)。

 

3、ticketGrantingTicketCookieGenerator.xml文件,修改为false。

 

4、warnCookieGenerator.xml文件,修改为false。

 

Cas认证支持很多种协议去认证,比如OAuth、SAML1、SAML2等协议,最常用的为REST协议获取TGT,TGT产生ST,通过ST与TGC去访问服务端验证。所以我们要给cas-server开启restful接口。

1、加入jar包。

看你是什么项目。

maven项目引入依赖:

 

web项目找jar包的方法:

https://blog.csdn.net/numbbe/article/details/

在这里插入图片描述

2、配置web.xml

 

不加入这段配置,访问会报404错误。
在这里插入图片描述

3、测试Ticket机制。

直接使用浏览器访问:http://localhost:8080/cas/v1/tickets。

出现Method Not Allowed,你就成功的开启了Restful接口。

相反,如果你一直显示认证界面或者登陆成功界面,你就是没有开启,前两步操作有误。

具体情况可以参考:

https://blog.csdn.net/numbbe/article/details/

另外Ticket机制,参考这篇文章:

https://blog.csdn.net/numbbe/article/details/
在这里插入图片描述

1、获取TGT。

在这里插入图片描述

 

2、获取ST。

在这里插入图片描述

 

3、验证ST。

在这里插入图片描述

 

当我们正常访问cas-server时,经常看到一个警告。

翻译一下就是:让你使用HTTPS协议进行单点登录。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

治标

当然,这是治标不治本。
在这里插入图片描述

治本

既然Cas让我们使用HTTPS,那我们使用HTTPS好了。

首先,知道两个问题。

 

证书是单点登录认证系统中很重要的一把钥匙,证书能极大的提高客户端与服务器的交互安全。在这里使用keytool工具生成证书,JDK自带工具。

1、修改本地域名,进入C:WindowsSystem32driversetc,修改hosts文件。

 

2、服务端证书,进入你的cas-server的Tomcat目录中,cmd依次执行命令。

最终会生成三个文件,如图:

在这里插入图片描述

 

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3、客户端证书,进入你的环境变量的JDK目录jdk/jre/lib/security目录(cacerts文件)

 

在这里插入图片描述

4、配置cas-server的server.xml文件,把之前的8080端口删掉,加上下边这段,开启HTTPS访问。

其中keystoreFile为你的证书地址,keystorePass你的证书密码。

 

5、配置cas-server,打开HTTPS协议,上边有关闭HTTPS协议的步骤,这边就反着来就行了。

之后通过https协议访问,就可以看到没有了warning,不会再说不安全了。

在这里插入图片描述

Tips:

有时候,你会碰到这样的情况,总是报不安全之类的,点击高级然后点进去就行了。

在这里插入图片描述

取消方法为:

在这里插入图片描述

版权声明


相关文章:

  • json格式解析错误是什么意思2025-04-04 12:30:02
  • 软件测试用mysql做什么2025-04-04 12:30:02
  • 背包问题的贪心算法所需的计算时间为2025-04-04 12:30:02
  • ft enable2025-04-04 12:30:02
  • bind9配置详解2025-04-04 12:30:02
  • java单元测试怎么做2025-04-04 12:30:02
  • ftp文件上传工具类2025-04-04 12:30:02
  • java比较好的爬虫框架2025-04-04 12:30:02
  • mysql触发器在哪2025-04-04 12:30:02
  • 栅格化布局设计是什么2025-04-04 12:30:02