单点登录 cas 设置回调地址_CAS单点登录之支持数据库认证

点击上方蓝色字体,选择“标星公众号”

优质文章,第一时间送达

  作者 |  smileNicky

来源 |  urlify.cn/iYnuQb

一、数据库设计

建数据库,加用户信息表:

DROP TABLE IF EXISTS `sys_user`;

CREATE TABLE `sys_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户Id',
  `username` varchar(100) NOT NULL COMMENT '用户名',
  `password` varchar(100) NOT NULL COMMENT '密码',
  `phone` varchar(11) DEFAULT NULL COMMENT '手机',
  `sex` varchar(6) DEFAULT NULL COMMENT '性别',
  `email` varchar(100) DEFAULT NULL COMMENT '邮箱',
  `mark` varchar(100) DEFAULT NULL COMMENT '备注',
  `rank` varchar(10) DEFAULT NULL COMMENT '账号等级',
  `lastLogin` date DEFAULT NULL COMMENT '最后一次登录时间',
  `loginIp` varchar(30) DEFAULT NULL COMMENT '登录ip',
  `imageUrl` varchar(100) DEFAULT NULL COMMENT '头像图片路径',
  `regTime` date NOT NULL COMMENT '注册时间',
  `locked` tinyint(1) DEFAULT NULL COMMENT '账号是否被锁定',
  `rights` varchar(100) DEFAULT NULL COMMENT '权限(没有使用)',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_u_1` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

二、CAS配置部署

在CAS.war里找到WEB-INF下面的cas.properties,这是cas的配置文件,可以自己加上一些配置:

##
# Datasource config
 platform.jdbc.jdbcUrl=jdbc:mysql://127.0.0.1:3306/jeeplatform?autoReconnect=true&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false
 platform.jdbc.username=root
 platform.jdbc.password=root
 platform.jdbc.publickey=HHwwDSJKoZIhvcNAQEBBQADSwAwSAJBAKZijIzzXp1dyksL1ZSejBmuVz1Y0vgiQVbcQ/13p4pwHRo8gU3pd6YaWutOlBTEWvHBbnGxIdnrhxnQZGwU1O0CAwEAAQ==
 platform.jdbc.initialSize=10
 platform.jdbc.minIdle=10
 platform.jdbc.maxActive=50

同样在WEB-INF的developerConfigContext.xml里,加上数据库DataSource的配置,这里用了阿里的druid,所以需要往lib文件夹里丢一下druid的相关jar


    "dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">"url" value="${platform.jdbc.jdbcUrl}"/>"username" value="${platform.jdbc.username}"/>"password" value="${platform.jdbc.password}"/>"initialSize" value="${platform.jdbc.initialSize}"/>"minIdle" value="${platform.jdbc.minIdle}"/>"maxActive" value="${platform.jdbc.maxActive}"/>"maxWait" value="60000"/>"timeBetweenEvictionRunsMillis" value="60000"/>"minEvictableIdleTimeMillis" value="300000"/>"validationQuery" value="SELECT 1"/>"testWhileIdle" value="true"/>"testOnBorrow" value="false"/>"testOnReturn" value="false"/>"removeAbandoned" value="true"/>"removeAbandonedTimeout" value="1800"/>"logAbandoned" value="true"/>"poolPreparedStatements" value="false"/>"filters" value="config" />

同样在WEB-INF的developerConfigContext.xml里配置一下数据库认证控制器:


    "queryDatabaseAuthenticationHandler" name="primaryAuthenticationHandler" class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">"dataSource" ref="dataSource" />"sql" value="select password from sys_user where username =?" />

修改authenticationHandlersResolvers,原来的是默认primaryAuthenticationHandler,这里改成queryDatabaseAuthenticationHandler,自己定义的认证控制器

"authenticationHandlersResolvers">"proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" />"queryDatabaseAuthenticationHandler" value-ref="primaryPrincipalResolver" />

ok,配置就做好了,然后可以登录验证

801dd5dd0deeb1c50a27e01e9080f991.png

登录成功,显示页面53f20b882abbc1474e8a0f6148ddaa39.png单点登出,链接是http://127.0.0.1:8080/cas/logoutf7d9c036becf5c7465de74b3465dfc6e.png

粉丝福利:Java从入门到入土学习路线图

👇👇👇

c6edbe7bcb70bdf6fcf0e5aa68cf60b0.png

👆长按上方微信二维码 2 秒

感谢点赞支持下哈 341d0e03789678af2ab3e2cb405a75f1.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值