文档章节

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

u
 udbwcso
发布于 2016/04/01 17:13
字数 450
阅读 426
收藏 2

上一篇: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
粉丝 80
博文 66
码字总数 15709
作品 0
武汉
私信 提问
CAS单点登录实现案例

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

Pig-man
2016/11/28
153
0
Cas之5.2.x版本单点登录自定义REST认证-yellowcong

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

yelllowcong
2017/12/19
0
0
cas server 实现LDAP、数据库认证

cas server(4.2.7) + client相关的配置 支持数据库验证用户 支持LDAP验证用户(LDAP相关安装请相见:https://blog.csdn.net/u011196623/article/details/82502570) cas server 端 数据库验证...

zhu_kai1
09/09
0
0
jasig CAS实现单点登录(数据库认证)

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

ihaolin
2014/02/18
0
10
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
14.3K
6

没有更多内容

加载失败,请刷新页面

加载更多

七牛qshell工具 批量删除操作

qshell 下载地址&文档(http://developer.qiniu.com/code/v6/tool/qshell.html) 这里我们演示的是windows下的操作,将下载的工具改名为:qshell.exe 然后将文件的路径添加到PATH 然后 点击 “...

koothon
45分钟前
1
0
Fastjson-fastjson中$ref对象重复引用问题

import java.util.ArrayList;import java.util.List;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.serializer.SerializerFeature;/** * fastjson中$ref对象......

小黄狗
50分钟前
1
0
mybatis一级缓存

mybatis执行查询的流程,最终都是通过动态代理进入到MapperProxy的invoke方法 @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try......

wuyiyi
51分钟前
4
0
安装weblogic wls1033_generic.jar 遇见的坑

接别人的烂摊子,weblogic部署没部署成功不部署了 让我远程给别人部署weblogic 11g 部署完成启动域的时候启动不了报错如下 Unrecognized option: -jrockit Error: Could not create the Ja...

雁南飞丶
51分钟前
1
0
通过7个python函数理解区块链

我想对于那里的很多人来说,区块链就是这种现象,很难不让你头脑发热。我开始观看视频和阅读文章,但对我个人而言,直到我编写自己的简单区块链,我才真正理解它是什么以及它的潜在应用价值。...

笔阁
52分钟前
23
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部