sso单点登录cas6.0.4

单点登录原理(原来参考网上资料)

有一个独立的认证中心,只有认证中心才能接受用户的用户名和密码等信息进行认证,其他系统不提供登录入口,只接受认证中心的间接授权。间接授权通过令牌实现,当用户提供的用户名和密码通过认证中心认证后,认证中心会创建授权令牌,在接下来的跳转过程中,授权令牌作为参数发送给各个子系统,子系统拿到令牌即得到了授权,然后创建局部会话。

环境(参考https://github.com/apereo)

JDK 11、tomcat:apache-tomcat-8.5.45以上(8.5.30版本可能不行,当初搭建一直跑不起来)

实现

Cas最新实现使用CAS Overlay Template,核心思想,所有代码,配置可以覆盖,这点比较重要。

第一步:下载CAS Overlay Template ,地址https://github.com/apereo/cas-overlay-template/tree/6.0

第二步:idea打开,直接打成war包,放入tomcat,直接启动,(打war有两种方式,第一种,直接用代码里面build.cmd指令,第二种是gradle task打包,这一步骤如果遇到问题,基本都是环境问题)

第三步:启动完成之后,搭建已经完成,校验是否可以登录,localhost:8080/cas/login,默认的用户名密码是application.properties文件中

cas.authn.accept.users=zhoud::123456

其他功能实现

数据库连接(https://apereo.github.io/cas/6.0.x/index.html,官方文档),我的代码里面用的不是官方的数据源,下面是我的代码配置,自己试过的可以

#cas.authn.jdbc.query[0].url=jdbc:mysql://localhost:3306/ebay_account?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&useSSL=false
#cas.authn.jdbc.query[0].user=root
#cas.authn.jdbc.query[0].password=1234
#cas.authn.jdbc.query[0].sql=select user_password from t_user where user_email= ?
#cas.authn.jdbc.query[0].fieldPassword=user_password
#cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver
#cas.authn.jdbc.query[0].passwordEncoder.type=DEFAULT
#cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8
#cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5
#cas.authn.attributeRepository.jdbc.sql=select is_id as isId,user_role as userRole from t_user where user_email = ? and (user_subuser_status = 'enabled' or user_subuser_status is null)

这个是6.0官方的配置,没试过,可以自己试下。

这些配置完成后,自己试一下,是否可以用数据库数据登录

Redis配置,使用redis的话使用官方的配置

# ${configurationKey}.redis.host=localhost

# ${configurationKey}.redis.database=0

# ${configurationKey}.redis.port=6380

# ${configurationKey}.redis.password=

# ${configurationKey}.redis.timeout=2000

# ${configurationKey}.redis.useSsl=false

# ${configurationKey}.redis.pool.max-active=20

# ${configurationKey}.redis.pool.maxIdle=8

# ${configurationKey}.redis.pool.minIdle=0

# ${configurationKey}.redis.pool.maxActive=8

# ${configurationKey}.redis.pool.maxWait=-1

# ${configurationKey}.redis.pool.numTestsPerEvictionRun=0

# ${configurationKey}.redis.pool.softMinEvictableIdleTimeMillis=0

# ${configurationKey}.redis.pool.minEvictableIdleTimeMillis=0

# ${configurationKey}.redis.pool.lifo=true

# ${configurationKey}.redis.pool.fairness=false

# ${configurationKey}.redis.pool.testOnCreate=false

# ${configurationKey}.redis.pool.testOnBorrow=false

# ${configurationKey}.redis.pool.testOnReturn=false

# ${configurationKey}.redis.pool.testWhileIdle=false

# ${configurationKey}.redis.sentinel.master=mymaster

# ${configurationKey}.redis.sentinel.node[0]=localhost:26377

# ${configurationKey}.redis.sentinel.node[1]=localhost:26378

# ${configurationKey}.redis.sentinel.node[2]=localhost:26379

配置完成后自己测试下。

Restful cas接口

首先引入这个包,看里面的源码,都是restful风格的接口,可以根据这些接口,自己重新定义restful 的单点登录

compile "org.apereo.cas:cas-server-support-rest:${casServerVersion}"

查询数据库校验登录用户信息,这个可以重新定义拦截器,官方的jdbc配置就要去除。自己定义数据源,然后自己定义拦截器。只需要继承SellerDatabaseAuthenticationHandler

Reids缓存如何修改key值,重写RedisTicketRegistry,代码路径所有都要和源码一样

如何修改redis key的后缀 重写DefaultUniqueTicketIdGenerator

把属性suffix字段值重新赋值就好了

cas6.0.4 单点登录相关推荐

  1. Oauth2.0实现单点登录的原理流程,这次总该懂了!

    单点登录是多域名企业站点流行的登录方式.本文以现实生活场景辅助理解,力争彻底理清 OAuth2.0 实现单点登录的原理流程.同时总结了权限控制的实现方案,及其在微服务架构中的应用. 1 什么是单点登录 ...

  2. Oauth2.0实现单点登录的原理流程

    Oauth2.0实现单点登录的原理流程 1.什么是单点登录 2.OAuth2 认证授权的原理流程 3.基于 SpringBoot 实现认证/授权 4.综合运用 1.什么是单点登录 1.1 多点登录 传 ...

  3. Oauth2.0实现单点登录的原理流程,通俗易懂

    单点登录是多域名企业站点流行的登录方式.本文以现实生活场景辅助理解,力争彻底理清 OAuth2.0 实现单点登录的原理流程.同时总结了权限控制的实现方案,及其在微服务架构中的应用. 1 什么是单点登录 ...

  4. Oauth2.0实现单点登录的原理流程,通俗易懂!

    点击上方☝码猿技术专栏 轻松关注,设为星标! 及时获取有趣有料的技术 单点登录是多域名企业站点流行的登录方式.本文以现实生活场景辅助理解,力争彻底理清 OAuth2.0 实现单点登录的原理流程.同时总 ...

  5. 关于oauth 2.0和单点登录

    什么是oauth 2.0,在实际场景中解决了什么问题? oauth 2.0是开放授权协议,核心思想是授权第三方应用访问用户的受保护资源,并且是以令牌的方式进行访问而不是用户名和密码,保证了安全性:例如 ...

  6. OAuth2.0实现单点登录的原理

    一.什么是单点登录 单点登录,英文是 Single Sign On,缩写为 SSO.多个站点(192.168.1.20X)共用一台认证授权服务器(192.168.1.110,用户数据库和认证授权模块共 ...

  7. oauth2.0与单点登录

    1.什么是 OAuth2.0 OAuth (Open Authority的缩写)是一个开放标准,该标准允许用户让第三方应用访问该用户在某一网站上存储的私密资源(如头像.照片.视频等),而在这个过程中无 ...

  8. SMAL2.0集成单点登录(SAP-SF)

    一.什么是 SAML 协议? SAML 即安全断言标记语言,英文全称是 Security Assertion Markup Language.它是一个基于 XML 的标准,用于在不同的安全域(secu ...

  9. Liferay6.2.1 集成 CAS4.0 实现单点登录与应用系统集成

    2019独角兽企业重金招聘Python工程师标准>>> 参考文章http://www.ibm.com/developerworks/cn/opensource/os-cn-lifer ...

最新文章

  1. 一个搜索需求搞垮微服务
  2. ITextHtml2canvas js截图 绘制 导出PDF
  3. c语言中随机选择函数,怎样让c语言中的随机函数真正随机?
  4. python 计算算术平方根
  5. 漫谈度量学习(Distance Metric Learning)那些事儿
  6. Redis面试题答案整理
  7. 实践理解计算机启动过程
  8. poj2393 其它贪心 挑战程序设计竞赛
  9. JS中实现Trim(),TrimStart(),TrimEnd() 的方法
  10. ActivityMQ介绍与使用
  11. 用计算机清点木材的数量,计算机在木材工业中的应用.doc
  12. android x86 修改器,烧饼修改器3.0X86专属版
  13. ctf工具整理-持续更新
  14. clickhouse集群搭建
  15. C++中fstream 的使用一
  16. python+selenium实现微博登录和自动评论
  17. POJ - 4048 Chinese Repeating Crossbow 暴力枚举+线段香蕉?
  18. WEB前端工程师 – 职业生涯规划
  19. 激流勇进,数据库替代比预想要快得多
  20. XenDesktop 之powershell 使用

热门文章

  1. PMP-项目整合管理的内容
  2. 网页中用快播qvod打开bt种子 在线播放
  3. 用Python打造属于你的贾维斯
  4. 无人机机载LiDAR数据应用之电力线路巡检
  5. 给 Linux 系统“减肥”,系统垃圾清理
  6. 汽车网络安全渗透测试
  7. Ubuntu16.04编译poco库
  8. 数据库中的参照完整性(Foreign Key)
  9. 【matlab小白训练】凝聚层次聚类分析
  10. Python分布式爬虫框架Scrapy实战