CAS服务端,查询数据库验证
博客专区 > udbwcso 的博客 > 博客详情
CAS服务端,查询数据库验证
udbwcso 发表于2年前
CAS服务端,查询数据库验证
  • 发表于 2年前
  • 阅读 371
  • 收藏 2
  • 点赞 1
  • 评论 0
摘要: CAS服务端,查询数据库验证

上一篇: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

输入用户名,错误的密码

输入用户名,正确的密码




共有 人打赏支持
粉丝 73
博文 35
码字总数 14992
×
udbwcso
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: