CAS配置手册Word格式文档下载.docx
《CAS配置手册Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《CAS配置手册Word格式文档下载.docx(43页珍藏版)》请在冰豆网上搜索。
![CAS配置手册Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-12/1/4a33a27a-c780-4d4d-9704-aa8dc67db059/4a33a27a-c780-4d4d-9704-aa8dc67db0591.gif)
4.5\modules文件夹下,把cas—server—webapp—3。
5。
war拷贝到Tomcat安装目录的(我的路径为D:
\apache-tomcat—6。
0。
30)webapps文件夹下。
为了方便在浏览器中浏览,把cas-server—webapp—3.4。
war文件名修改为cas.war
2运行Tomcat。
在浏览器中输入http:
//10.12。
21。
45:
8080/cas,显示登录界面。
输入用户名和密码(用户名和密码相等即可),登录成功.这样最简单的CAS验证服务器搭配成功。
4数据库验证方式
4.1密码已明文存在数据库中
1复制D:
\cas-server—3.4.5\modules下面所有jar包到D:
\apache—tomcat-6。
30\webapps\
cas\WEB—INF\lib下。
数据库为Oracle,因此把Oracle驱动包也复制到lib文件夹下。
注意删除重复的jar包.
2打开D:
\apache—tomcat-6.0。
30\webapps\cas\WEB-INF\deployerConfigContext.xml文件
在〈beanid=”authenticationManager”节点上面添加数据源信息:
<
beanid="
dataSource"
class="
org.springframework。
jdbc.datasource。
DriverManagerDataSource"
>
<
propertyname="
driverClassName”〉
value>
oracle.jdbc.driver。
OracleDriver
〈/value〉
〈/property〉
propertyname=”url"
value〉
jdbc:
oracle:
thin:
@10.12。
21.140:
1521:
orcl
/value〉
username"
〉
〈value>
scott〈/value>
/property〉
propertyname=”password”〉
tiger〈/value〉
/bean〉
在该文件中搜索“SimpleTestUsernamePasswordAuthenticationHandler"
〈bean
class="
org。
cas。
authentication。
handler。
support.SimpleTestUsernamePasswordAuthenticationHandler"
/〉
这是cas提供的最简单的验证方式,即用户名和密码相等即可登录成功。
现假设我们的登录用户名和密码存在于t_login表中,信息如下:
ID
USERNAME
PASSWORD
1
coolszy
123456
把上面的bean给注销掉,添加如下信息:
beanclass="
cas.adaptors。
jdbc.QueryDatabaseAuthenticationHandler"
propertyname=”sql”value="
selectpasswordfromt_loginwhereusername=?
”/〉
〈propertyname="
dataSource”ref="
/〉
〈/bean>
重启服务器,测试.当然我们还可以指定表和字段
〈beanclass="
jasig.cas。
adaptors.jdbc。
SearchModeSearchDatabaseAuthenticationHandler"
abstract=”false”lazy—init=”default”autowire="
default”>
〈propertyname=”dataSource”ref=”dataSource"
/>
tableUsers"
value="
t_login”/〉
〈propertyname=”fieldUser”value=”username”/>
〈propertyname=”fieldPassword”value="
password"
/>
〈/bean〉
4.2密码已密文存在数据库中
以上的配置只适合密码已明文的方式存储在数据库中,但是实际中我们的密码都是经过加密的。
下面演示下如果使用MD5加密密码。
首先配置MD5,该配置信息放在数据源配置的下面.
beanid=”passwordEncoder”
class=”org。
cas.authentication.handler。
DefaultPasswordEncoder”>
〈constructor—argvalue=”MD5”/>
/bean>
然后修改上面的数据库验证配置,添加密码加密方式,修改后如下:
〈beanclass=”org。
jasig.cas.adaptors。
jdbc。
QueryDatabaseAuthenticationHandler"
sql”value=”selectpasswordfromt_loginwhereusername=?
"
ref=”dataSource"
〈propertyname=”passwordEncoder"
ref="
passwordEncoder”/〉
4.3使用自己编写的加密类
上面介绍了密码采用MD5加密的配置方式,下面介绍下如果使用我们自己编写的加密类。
1新建一个Java项目,cas—server-core—3.4.5。
jar包,
2新建一个Java类,实现org。
cas.authentication。
PasswordEncoder接口中的publicStringencode(Stringarg0)方法,这是用来对输入的密码进行加密,我这里命名为:
PasswordEncrypt
3在encode()方法中可以根据实际的加密方式编写代码。
packageszy.cas。
encrypt;
importjava.security.MessageDigest;
importorg。
handler.PasswordEncoder;
/**
*@authorcoolszy
*@dateJan21,2011
*/
publicclassPasswordEncryptimplementsPasswordEncoder
{
publicStringencode(Stringpassword)
{
try
{
MessageDigestalg=MessageDigest。
getInstance(”SHA—1"
);
alg。
reset();
alg.update(password。
getBytes());
byte[]hash=alg。
digest();
Stringdigest=””;
for(inti=0;
i<
hash。
length;
i++)
{
intv=hash[i]&
0xFF;
if(v〈16)
digest+=”0"
;
digest+=Integer.toString(v,16).toUpperCase();
}
returndigest;
}
catch(Exceptione)
{
e.printStackTrace();
returnpassword;
}
}
}
编写完毕后,建议进行测试,避免错误发生。
然后把该项目导出成jar包,并且把jar包拷贝到D:
\apache—tomcat—6。
0.30\webapps\cas\WEB—INF\lib下。
然后修改上面添加的
〈beanid="
passwordEncoder"
DefaultPasswordEncoder"
〉
〈constructor-argvalue=”MD5”/〉
把class修改为我们的加密类,即
beanid=”passwordEncoder”class="
szy。
cas.encrypt。
PasswordEncrypt"
〈!
——
〈constructor—argvalue="
MD5”/>
——>
〈/bean〉
测试,成功.
5修改界面
5.1修改验证通过后显示提示信息的界面
修改D:
0.30\webapps\cas\WEB-INF\view\jsp\default\ui\
casGenericSuccess.jsp页面,添加如下内容调转到指定页面
〈%
response。
sendRedirect(”http:
//10.12.21.139.:
8080/client/index。
action”);
%>
5.2定义自己的验证界面
cas给我们提供了一个"
default”界面,该界面比较简单,而且也不怎么漂亮,因此我们需要定制自己的验证界面。
下面介绍一下如何设计自己的界面.
1进入D:
0.30\webapps\cas\WEB—INF\view\jsp,把default文件夹复制一份在本目录下,这里我把文件夹修改为coolszy.
2进入D:
\apache—tomcat—6.0。
30\webapps\cas\WEB-INF\view\jsp\coolszy\ui。
在该目录下你将会看到如下文件:
casConfirmView。
jsp
在浏览器跳转到用户想要访问的页面之前如果有警告信息,这个页面将会被显示。
casGenericSuccess.jsp
这个页面一般不会被显示,除非我们直接访问验证服务器的验证界面。
http:
21.45:
8080/cas.
casLoginView.jsp
重点修改的页面。
这个就是输入验证信息的界面。
casLogoutView.jsp
注销界面
serviceErrorView。
jsp
如果用户想要访问的服务没有使用CAS,这个页面将会显示出来。
注意:
如果我们所有的业务系统都使用了CAS,这个界面则会没有任何作用.
如果想修改界面,我建议我们首先熟悉里面所有的jsp页面。
重点是casLoginView.jsp还有includes目录下的两个文件。
我们在修改时尽量不要修改forms和逻辑标签。
除非我们比较熟悉他们。
如果我们定义的页面中含有样式表,可直接修改D:
\apache—tomcat—6.0.30\webapps\cas\themes\default目录下的cas.css文件。
当然我们也可以自己创建一个css文件,个人建议也把文件放到D:
0.30\webapps\cas\themes中,可新建一个目录比如coolszy。
接着我们要修改jsp页面中的引用路径。
打开D:
\apache—tomcat-6.0.30\webapps\cas\WEB—INF\view\jsp\
coolszy\ui\includes\top。
jsp文件。
找到如下代码:
spring:
themecode="
standard.custom。
css。
file”var="
customCssFile"
我们需要standard.custom.css.file的值。
该值存在于
D:
0.30\webapps\cas\WEB—INF\classes\cas-theme-default.properties文件中。
修改为我们的路径。
引用的图片也需要注意相对路径和绝对路径。
3进入D:
0.30\webapps\cas\WEB—INF\classes目录,复制
default_views。
properties,我这里重新命名为coolszy_views.properties.打开该文件,修改页面路径,我这里是把default全部替换为coolszy。
该目录下存在很多messages_*.properties文件,主要是为了国际化。
我把不需要的语言给删除掉。
同时修改messages_zh_CN。
properties文件中的信息,使得提示信息更加符合我们的需求.这个文件我是在Eclipse中修改的。
我的Eclipse安装了PropertiesEditor插件。
4打开D:
\apache-tomcat-6。
30\webapps\cas\WEB—INF\cas.properties文件,把
viewResolver.basename=default_views
修改为
viewResolver。
basename=coolszy_views
5启动服务器,测试下效果。
有可能显示原来的界面,可尝试把D:
\apache-tomcat—6.0.30\
work\Catalina目录下的文件夹清空掉。
6服务器端超时配置
\apache—tomcat-6.0.30\webapps\cas\WEB-INF\spring-configuration\目录中的
applicationContext.xml文件,修改如下部分信息:
httpClient”class=”org.jasig。
cas.util。
HttpClient”
p:
readTimeout="
5000”
p:
connectionTimeout="
5000”/>
修改我们所需要的超时时间.
7HTTPS验证配置
7.1普通证书
注:
如果电脑上没有设置环境变量JAVA_HOME,请设置完毕后再操作。
7.1.1创建key
1进入cmd。
输入“cd\”来到系统根目录
2输入命令
keytool—genkey-aliascasserver-keyalgRSA—keypasschangeit-storepasschangeit—keystoreserver.keystore—validity3600
注:
参数-validity指证书的有效期(天),缺省有效期只有90天。
其它参数含义请在cmd上输入keytool回车即可看到。
在生成证书时会让你输入信息,其中“您的名字与姓氏是什么?
”这个内容必须填写cas服务器所对应的域名或者服务器的计算机名,我这里使用计算机名:
这样在我们的C盘根目录下生成一个名为server。
keystore的证书。
7.1.2将证书导入的JDK的证书信任库中
1导出证书,命令如下:
keytool-export—trustcacerts-aliascasserver-fileserver。
cer—keystoreserver。
keystore-storepasschangeit
server.keystore为我们上一步生成的证书.
2导入到证书信任库,命令如下:
keytool—import-trustcacerts-aliascasserver-fileserver。
cer-keystore"
C:
\ProgramFiles\Java\jdk1.6。
0_21\jre\lib\security\cacerts”-storepasschangeit
JDK的路径根据你电脑安装的位置进行修改.另外如果你电脑中安装的JRE,还应执行如下命令:
keytool-import—trustcacerts—aliascasserver—fileserver。
cer—keystore"
C:
\ProgramFiles\Java\jre6\lib\security\cacerts”—storepasschangeit
3顺便补充另外两个命令
列出所导入证书
keytool—list—v—keystore"
0_21\jre\lib\security\cacerts"
删除存在的证书
Keytool-delete-trustcacerts—aliascasserver
—keystore
”C:
—storepasschangeit
如果提示输入密码,则输入:
changeit
7.1.3配置TOMCAT服务器
1打开D:
\apache-tomcat—6.0。
30\conf\server。
xml文件,找到:
Connectorport="
8443"
protocol="
HTTP/1。
1”SSLEnabled="
true"
maxThreads=”150"
scheme=”https"
secure=”true”
clientAuth="
false"
sslProtocol="
TLS"
该内容默认是被注视掉.我们把该段修改为:
Connectorprotocol=”org.apache.coyote。
http11。
Http11NioProtocol"
port="
minSpareThreads=”5"
maxSpareThreads="
75"
enableLookups="
disableUploadTimeout=”true"
acceptCount="
100"
maxThreads="
200"
scheme="
https”secure="
true”SSLEnabled="
clientAuth=”false"
TLS”
keystoreFile="
\server.keystore"
keystorePass=”changeit"
其中keystoreFile为已经生成的服务器证书的地址
keystorePass为自定义的服务器证书的密码
7.1.4测试
打开浏览器输入
https:
//10.12.21.45:
8443/cas/
如果出现如下警告信息,点击确定.
7.2使用CA证书
在一些企业中会使用CA证书进行验证,本节讲解如何使用CA证书.
7.2.1准备工作
使用如下命令把上一些的证书从CAS验证服务器和业务服务器上的JRE中删除
Keytool—delete—trustcacerts—aliascasserver
-keystore
"
\ProgramFiles\Java\jdk1。
6.0_21\jre\lib\security\cacerts”-storepasschangeit
Keytool—delete-trustcacerts-aliascasserver-keystore”C:
7.2.2创建key
在cas验证服务器输入命令
keytool-genkey-aliaswww.coolszy。
com—keyalgRSA—keysize2048-keypasschangeit—storepasschangeit—keystorecoolszy.jks-validity3600
其中www。
coolszy。
com为CAS验证服务器的对应的域名。
在生成证书时会让你输入信息,其中“您的名字与姓氏是什么?
”这个内容同上:
这样在我们的C盘根目录下生成一个名为coolszy。
jks的文件。
7.2.3创建证书请求
命令:
keytool—certreq-alias—filecoolszy.csr-keystorecoolszy.jks-keypasschangeit—storepasschangeit
7.2.4申请CA证书
1进入公司的CA证书申请网站
2点击“申请一个证书”--“高级证书申请”-—“使用base64编码的CMC或PKCS#10文件提交一个证书申请,或使用base64编码的PKCS#7文件续订证书申请。
——
“浏览要插入的文件”--选择“C:
\coolszy.csr"
——“提交”——“选择Base64编码"
-—“下载证书链”——保存certnew.p7b。
7.2.5导入证书
keytool—import-trustcacerts-aliaswww。
com—filec:
\certnew。
p7b—keystorecoolszy。
jks-keypasschangeit-storepasschangeit
7.2.6CAS验证服务器端Tomcat配置
修改server.xml,开启开启https;
443”protocol="
apache.coyote.http11.Http11NioProtocol"
SSLEnabled=”true"
150”scheme=”https"
false”ssl