cas服务端配置oracle,CAS单点登录折腾记-服务端版本4.2.x

看懂题目的应该都知道要干什么,直接写吧。

一、折腾开始的地方--下载CAS-SERVER

工作需要,要研究单点登录了。当然,身为一个后端er,也是知道cas的存在的,所以就选它了!

下载:这里注意下,这个项目主页的Download提供的版本并不是最新的,得上github找,这里附上链接吧;

截止目前,5.0.X版本已经释放了,但为了响应题目,挑个4.2.X版本(当时我下的是4.2.5版本)。

cas-server除了提供源码下载,也提供一种overlay的构建版本,详细的自行了解,这里选择源码下载,即source code。

二、折腾前需要造个炉--服务器准备

弄个虚拟机吧,没弄好可以重新搭个,省时省力~

Windows或Linux自选;

(重要)服务器的主机名弄个域名,最好的条件在dns服务器上做个给服务器IP做个域名解析,如cas.abc.com。没条件就自己安个dns服务,但我没试过~;

为了避免不必要的错误,jdk请用1.8以上,gradle、maven环境请自行搭建;

弄个tomcat!开启HTTPS,具体做法可参考网上教程,这里给个简略版的: 1. 编辑server.xml,取消注释8443端口的相关代码; 2. 利用jdk的keytool工具生成证书,添加到上面的代码中,生成证书时,当问你名字时,必须填上域名!域名!域名!(因为cas是基于域名进行SSL访问滴); 3. 继续利用keytool导出证书,crt或cer格式,以后配置cas-client备用。

cas-server自带jdbc插件,因此安了个mysql数据库,用来做用户表;

三、开工!

cas-server自4.2.x后,并未单独提供war包了,需要自行编译。而且项目构建工具换成gradle,因此下载源码后,进入cas-4.2.x\cas-server-webapp\后,键入下面命令编译:

gradle assemble

喝杯水,等一会,再进入cas-4.2.x\cas-server-webapp\build\lib里就可以看到war包了,改个名字cas-server,随你喜欢,把它扔进tomcat\webapps里!

好了,现在cas-server初始版弄好了,先在浏览器输入

https://localhost:8443/cas-server/

如无意外,应该可以正常访问了,用初始用户名:casuser,密码:Mellon试试登录,应该是没问题滴。

四、应该让cas-server更好用点

其实我也研究的不多,只是使用了简单数据库连接。让cas-server有个后端数据库,仅此而已。这里的做法没啥特别了,纯粹按照官方文档去做,所以有兴趣研究的还请务必细读官方文档!!

当然,我们得先利用mysql建个库,就叫cas好了,然后在库里面建张表,叫user好了,里面有俩字段,uid,password好了。数据嘛,自行添加,密码暂时用明文存放,加密之类cas-server当然支持,只是偷懒没研究罢了。。

这里,要回到cas-4.2.x\cas-server-support-jdbc里,敲入

gradle build

生成jar包,然后网上下载个mysql-java-connector的jar包,两个一起放在webapps\cas-server\WEB-INF\lib里面。

废话说完了,开始配置cas-server,这里要配置的文件有2个,分别是cas.properties和deployerConfigContext.xml。

首先在cas.properties里添加以下代码段,用来连接mysql数据库:

# == Basic database connection pool configuration ==

database.driverClass=org.postgresql.Driver //改成mysql的驱动

database.url=jdbc:postgresql://database.example.com/cas?ssl=true //cas数据库的连接串

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

然后在deployerConfigContext.xml里最后端添加这段,用来识别cas.properties里的数据源

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}" />

接着注释掉该行:

添加:

然后回到cas.properties里,找到这行:

# cas.jdbc.authn.query.sql=select password from users where username=?

将#号去掉,并根据自己的数据库表更改下就可以了。

最后,重启下tomcat,再次进入cas-server的页面,用数据库表里的用户名与密码登录应该没问题了。

###五、 简单地折腾后

弄完上面的,cas-server就可以用了,比较简单。对于cas的认证方式,官方文档提供了很多选择,如数据库,ldap,oauth等等。而且数据库也有几种Handler解决方案,我没有逐一去试(除了时间关系,其实我是搞不懂,欢迎各位指教~~)。

至于为啥全篇没啥图片。。。不知道,不要问我为什么。

还是说下吧,有转载意向的话。。还请告诉我下吧,谢谢了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值