文档章节

CAS服务端,查询数据库验证

u
 udbwcso
发布于 2016/04/01 17:13
字数 450
阅读 413
收藏 2
点赞 1
评论 0

上一篇:http://my.oschina.net/u/657390/blog/651499

官方文档:http://jasig.github.io/cas/4.2.x/installation/Database-Authentication.html

1.添加依赖

在cas-4.2.0\cas-server-support-jdbc目录下找到

QueryAndEncodeDatabaseAuthenticationHandler.java

将@Component("queryAndEncodeDatabaseAuthenticationHandler")注释掉

因为目前没有用到这个功能,不注释掉在后续启动tomcat时会报错

在cas-4.2.0\cas-server-support-jdbc目录下打开命令提示符界面输入

gradle assemble

得到cas-server-support-jdbc-4.2.0.jar

cas-server-support-jdbc-4.2.0.jar和oracle驱动拷贝到apache-tomcat-7.0.68\webapps\cas\WEB-INF\lib

2.创建表

仅供测试用

DROP TABLE "PLATFORM"."P_USER";
CREATE TABLE "PLATFORM"."P_USER" (
"USERNAME" VARCHAR2(255 BYTE) NULL ,
"PASSWORD" VARCHAR2(255 BYTE) NULL 
)
LOGGING
NOCOMPRESS
NOCACHE

;

-- ----------------------------
-- Records of P_USER
-- ----------------------------
INSERT INTO "PLATFORM"."P_USER" VALUES ('123', '111');

3.配置

按照官方文档即可

在deployerConfigContext.xml里添加

<bean id="dataSource"
      class="com.mchange.v2.c3p0.ComboPooledDataSource"
      p:driverClass="${database.driverClass}"
      p:jdbcUrl="${database.url}"
      p:user="${database.user}"
      p:password="${database.password}"
      p:initialPoolSize="${database.pool.minSize}"
      p:minPoolSize="${database.pool.minSize}"
      p:maxPoolSize="${database.pool.maxSize}"
      p:maxIdleTimeExcessConnections="${database.pool.maxIdleTime}"
      p:checkoutTimeout="${database.pool.maxWait}"
      p:acquireIncrement="${database.pool.acquireIncrement}"
      p:acquireRetryAttempts="${database.pool.acquireRetryAttempts}"
      p:acquireRetryDelay="${database.pool.acquireRetryDelay}"
      p:idleConnectionTestPeriod="${database.pool.idleConnectionTestPeriod}"
      p:preferredTestQuery="${database.pool.connectionHealthQuery}" />


<alias name="queryDatabaseAuthenticationHandler" alias="primaryAuthenticationHandler" />
<alias name="dataSource" alias="queryDatabaseDataSource" />

注释掉

<alias name="acceptUsersAuthenticationHandler" alias="primaryAuthenticationHandler" />

在cas.properties里添加

# == Basic database connection pool configuration ==
database.driverClass=org.postgresql.Driver 
database.url=jdbc:postgresql://database.example.com/cas?ssl=true 
database.user=somebody 
database.password=meaningless 
database.pool.minSize=6 
database.pool.maxSize=18

# Maximum amount of time to wait in ms for a connection to become
# available when the pool is exhausted
database.pool.maxWait=10000

# Amount of time in seconds after which idle connections
# in excess of minimum size are pruned.
database.pool.maxIdleTime=120

# Number of connections to obtain on pool exhaustion condition.
# The maximum pool size is always respected when acquiring
# new connections.
database.pool.acquireIncrement=6

# == Connection testing settings ==

# Period in s at which a health query will be issued on idle
# connections to determine connection liveliness.
database.pool.idleConnectionTestPeriod=30

# Query executed periodically to test health
database.pool.connectionHealthQuery=select 1

# == Database recovery settings ==

# Number of times to retry acquiring a _new_ connection
# when an error is encountered during acquisition.
database.pool.acquireRetryAttempts=5

# Amount of time in ms to wait between successive aquire retry attempts.
database.pool.acquireRetryDelay=2000

cas.jdbc.authn.query.sql=SELECT u.PASSWORD password FROM P_USER u WHERE u.USERNAME=?

4.测试

启动tomcat

访问:http://localhost:8080/cas

输入用户名,错误的密码

输入用户名,正确的密码




© 著作权归作者所有

共有 人打赏支持
u
粉丝 77
博文 34
码字总数 15709
作品 0
武汉
CAS单点登录实现案例

我们先按套路来,上点客套的: 1、CAS的基本工作原理 2、CAS的时序图如下 3、好吧好吧,下面废话不说,我直接来干货 A、hosts文件的配置,可有可无,但是按照我之前看别人的博客,这个还是方...

Pig-man ⋅ 2016/11/28 ⋅ 0

Cas之5.2.x版本单点登录自定义REST认证-yellowcong

通过接口的方式进行单点登录的操作。REST这种方式是解决验证数据不在CAS服务端,而是在本地端项目源码地址:https://gitee.com/yellowcong/casdemo/tree/master/casrestdemo ,这个破玩意折腾...

yelllowcong ⋅ 2017/12/19 ⋅ 0

jasig CAS实现单点登录(数据库认证)

之前转载了一篇IBM的CAS单点登录实现,不过瘾,于是到官网弄下最新版本来再战一把: 这个CAS(Central Authentication Service)是耶鲁大学的开源项目,旨在实现企业应用单点登录,还是很不错的...

ihaolin ⋅ 2014/02/18 ⋅ 10

CAS配置数据库进行用户验证

这里基于mysql数据库进行用户验证 添加依赖 拷贝cas-server-support-jdbc-x.x.x.jar和mysql驱动包到casWEB-INFlib目录下 创建数据库、表 表结构如下 create table cas_user ( ) ENGINE=InnoD...

小咔蹭 ⋅ 2013/12/05 ⋅ 2

CAS单点登录完整教程

http://www.wsria.com/archives/1349 一、教程前言 教程目的:从头到尾细细道来单点登录服务器及客户端应用的每个步骤 单点登录(SSO):请看百科解释猛击这里打开 本教程使用的SSO服务器是Y...

张xtpgyaps ⋅ 2011/06/28 ⋅ 2

cas错误:org.jasig.cas.client.validation.TicketValidationException: No principal was found in the response from the CAS server.

我在本机测试cas的部署,客户端和服务端同时安装在我本机(win7),使用了两个tomcat(6.0.7)分别对应cas客户端(3.2.1)和cas服务端(3.4), 同时安装了两个jdk,一个是jdk1.6(设置成了环境变量...

勇敢的心2 ⋅ 2014/04/04 ⋅ 6

cas单点登录登出配置,学习记录

一、服务端配置: 证书 进入cmd,不需更改cd 第一种方法: 1、用JDK自带的keytool生成证书 keytool -genkey -alias sso -keyalg RSA -keystore e:/keys/ssokey 其中名字与姓氏写服务端域名,...

leilovege ⋅ 2014/01/03 ⋅ 1

CAS客户端认证流程

![cas 登陆流程][1] Step 1:浏览器向CAS客户端发起登陆请求,CAS客户端生成“登陆URL”,并把浏览器重定向到该URL登陆URL: https://${cas-server-host}:${cas-server-port}/cas-server/login...

mj4738 ⋅ 2013/09/11 ⋅ 2

JA-SIG(CAS)学习笔记3

技术背景知识: JA-SIG CAS服务环境搭建,请参考 :JA-SIG(CAS)学习笔记1 JA-SIG CAS业务架构介绍,请参考 :JA-SIG(CAS)学习笔记2 HTTPS所涉及的Java安全证书知识,请参考 :Java keyt...

张xtpgyaps ⋅ 2011/06/30 ⋅ 0

单点登录(SSO)—简介

单点登录SSO(Single Sign-On)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后...

zting科技 ⋅ 2017/01/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

idea 整合 vue 启动

刚学习Vue 搭建了一个项目 只能命令启动 Idea里面不会启动 尝试了一下修改启动的配置 如下: 1.首先你要保证你的package.json没有修改过 具体原因没有看 因为我改了这个name的值 就没办法启动...

事儿爹 ⋅ 13分钟前 ⋅ 0

数据仓库技术概述(一看就是架构师写的,对我极其有用)

ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于...

gulf ⋅ 15分钟前 ⋅ 0

redis在windows环境的后台运行方法

在后台运行,首先需要安装redis服务,命令为 redis-server.exe --service-install redis.windows.conf --loglevel verbose 启动,命令为 redis-server --service-start 停止,命令为 redis-...

程序羊 ⋅ 17分钟前 ⋅ 0

比特币现金开发者提出新的交易订单规则

本周,四位比特币现金的四位开发者和研究员:Joannes Vermorel(Lokad),AmaurySéchet(比特币ABC),Shammah Chancellor(比特币ABC)和Tomas van der Wansem(Bitcrust)共同发表了一篇关...

lpy411 ⋅ 20分钟前 ⋅ 0

vue获取input输入框的数据

用惯了jQuery,突然使用vue感觉很不习惯,有很多不同的地方,感觉是两个不同的思想来写前端的代码。jQuery是使用选择器($)选取DOM对象,对其进行赋值、取值、事件绑定等操作。而Vue则是通过...

王子城 ⋅ 22分钟前 ⋅ 0

竟然这就是面向对象的游戏设计?!

从程序角度考虑,许多 JavaScript 都基于循环和大量的 if/else 语句。在本文中,我们可了解一种更聪明的做法 — 在 JavaScript 游戏中使用面向对象来设计。本文将概述原型继承和使用 JavaSc...

柳猫 ⋅ 28分钟前 ⋅ 2

git cmd git bash

刚用到了Git,看到windows环境下有两个命令输入窗口 第一个是可视化图形界面,第二个是CMD,第三个是Bash。 Git中的Bash是基于CMD的,在CMD的基础上增添一些新的命令与功能。所以建议在使用的...

东东笔记 ⋅ 30分钟前 ⋅ 0

分布式系统CAP和Base

1、分布式系统 1.1 简介 由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成。分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的...

xixingzhe ⋅ 40分钟前 ⋅ 0

查看磁盘占用情况

记一次jenkins构建失败的问题 Build step 'Send build artifacts over SSH' changed build result to UNSTABLE 网上查资料都没明确表明是什么错,回忆之前处理这样的问题。第一时间想到的是不...

ManderSF ⋅ 42分钟前 ⋅ 0

数据库管理提速:SQL解析的探索与应用

前言: SQL解析是一项复杂的技术,一般都是由数据库厂商来掌握,当然也有公司专门提供SQL解析的API。SQL解析与优化是属于编译器范畴,和C语言等其他语言的解析没有本质的区别。其中分为词法分...

java高级架构牛人 ⋅ 49分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部