CAS 讲义Word文件下载.docx
- 文档编号:7890834
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:18
- 大小:104.48KB
CAS 讲义Word文件下载.docx
《CAS 讲义Word文件下载.docx》由会员分享,可在线阅读,更多相关《CAS 讲义Word文件下载.docx(18页珍藏版)》请在冰点文库上搜索。
三.实践配置
下面我们以tomcat5.5为例进行说明(这里,我将Server和Client同时放在了同一个Tomcat服务器下)。
软件环境:
tomcat5.5ant-1.6.5,jdk1.5.0_06
下载cas-server-3.0.4.zip和cas-client和cas-server-jdbc-3.0.5-rc2.jar和mysql5.0.16和tomcat5.5.15
http:
//www.ja-sig.org/downloads/cas/cas-server-3.0.4.ziphttp:
//www.yale.edu/tp/cas/cas-client-2.0.11.zip
//developer.ja-sig.org/maven/cas/jars/cas-server-jdbc-3.0.5-rc2.jar
//tomcat.apache.org/
(一)将一个或者一些页面进行支持HTTPS传输协议(意义:
对某些页面进行了安全传输)(重点掌握)
1.产生SERVER的证书库文件
keytool-genkey-aliastomcat-keyalgRSA[-keystorekeystore-file]
并将证书文件放在web容器的目录下。
2.(在server端)配置tomcat使用HTTPS
$CATALINA_HOME/conf/server.xml里
<
Connectorport="
8443"
maxHttpHeaderSize="
8192"
keystorePass="
changeit"
keystoreFile="
\conf\.keystore"
maxThreads="
150"
minSpareThreads="
25"
maxSpareThreads="
75"
enableLookups="
false"
disableUploadTimeout="
true"
acceptCount="
100"
scheme="
https"
secure="
clientAuth="
sslProtocol="
TLS"
/>
注意:
keystorePass="
(这个问证书库文件的密码,也就是上面配置产生的一个密码)keystoreFile="
/.keystore"
(这是证书库文件的存放路径,其中根目录“/”为tomcat的安装路径)
3.在WEB-INF\web.xml文件中增加
<
security-constraint>
web-resource-collection>
web-resource-name>
SSL<
/web-resource-name>
!
--名字随便取-->
url-pattern>
/jsp2/el/*<
/url-pattern>
/web-resource-collection>
user-data-constraint>
transport-guarantee>
CONFIDENTIAL<
/transport-guarantee>
/user-data-constraint>
/security-constraint>
解释:
transport-guarantee元素指定了客户端和服务端的通信关系,有NONE,INTEGRAL,CONFIDENTIAL。
NONE表示着应用不需要任何传输保障。
INTEGRAL表示着在数据在客户端到服务端的过程中不能有任何改变。
CONFIDENTIAL表示在传输过程中防止其他传输内容的干扰。
在使用SSl时常用的就INTEGRAL或CONFIDENTIL。
4.进行访问测试
(二)实现CAS系统
3.将cas-server-3.0.4.zip解压,并将target/cas.war拷贝到webapps下。
4.将cas-client-2.0.11.zip解压,把cas-client-2.0.11\java\lib\casclient.jar拷贝到client服务器上(这里为同一tomcat)的书生读吧_{w"
n_L;
G&
m0\,wg_i_F9p
webapps/servlets-examples/WEB-INF/lib目录下(如果没有就建一个)
5.在要使用CAS的客户端应用里设置(以servlets-examples这个APP为例,在应用时,所有客户端均进行类似配置),我们使用ServletFilter(CASclient里提供的)来实现SSO的检查。
修改servlets-examples/WEB-INF/web.xml
filter>
filter-name>
CASFilter<
/filter-name>
filter-class>
edu.yale.its.tp.cas.client.filter.CASFilter<
/filter-class>
init-param>
param-name>
edu.yale.its.tp.cas.client.filter.loginUrl<
/param-name>
param-value>
https:
//your.cas.server.name:
port<
--这里是CASserver的loginURL-->
/cas/login<
/param-value>
/init-param>
edu.yale.its.tp.cas.client.filter.validateUrl<
--这里是CASserver的URL验证器-->
/cas/proxyValidate<
edu.yale.its.tp.cas.client.filter.serverName<
your.client.server.name:
port<
--client:
port就是需要CAS需要拦截的地址和端口,一般就是这个TOMCAT所启动的IP(默认为localhost)和port(默认8080)-->
/filter>
filter-mapping>
/servlet/*<
/filter-mapping>
配置好的例子:
<
<
//localhost:
8443/cas/login<
8443/cas/proxyValidate<
<
localhost:
8080<
/*<
6.7.导出SERVER端的的证书文件(证书文件只包含公钥)书生读吧_[*S_}_{-E
keytool-export-filemyserver.crt-aliasmy-alias-name-keystorekeystore-file
//keytool-export-filemyserver.crt-aliastomcat-keystore.keystore/////
Z0ts)`o0书生读吧_v_w_l;
T_U9Q&
[J2D`"
Sa
在客户端的JVM里的证书库cacerts中导入信任的SERVER的证书(根据情况有可能需要管理员权限)
8y'
t*^!
O1Y
7.s0keytool-import-keystorecacerts-filemyserver.crt-aliashostname(别名)
然后将cacerts复制到%JAVA_HOME%/jre/lib/security/目录下
//keytool-import-keystorecacerts-filemyserver.crt-aliastomcat书生读吧~_n^*D_y0tF!
I_|
书生读吧_m_Z4c_G@5E)R_Z/in
测试.书生读吧!
L_m_A_t
A_Ba(r_n
把server和client分别起来(这里为同一个Tomcat,实际应用时可以在多个服务器上,且client可以为多个应用),检查启动的LOG是否正常,如果一切OK,就访问
8.Q*R:
N_u.^_]5r"
J_Y_i_o9x0http:
8080/servlets-examples/servlet/HelloWorldExample
_k7YBe:
z:
_g0系统会自动跳转到一个验证页面,随便输入一个相同的账号,密码,验正通过之后就会访问
_Th1|8Y_k_a$G6qk0到真正的HelloWorldExample这个servlet了
四.结合实际的环境的扩展
1多个web应用如何实现单点登陆
(!
――大家思考一下:
如果我想在配置一个客户端,需要什么步骤?
)
下面以jsp-examples为例子,进行下面得阐述:
(1)在\webapps\jsp-examples\WEB-INF\web.xml文件中进行配置:
edu.yale.its.tp.cas.client.filter.CASFilter
edu.yale.its.tp.cas.client.filter.loginUrl
edu.yale.its.tp.cas.client.filter.validateUrl
https:
8443/cas/proxyValidate
edu.yale.its.tp.cas.client.filter.serverName
/jsp2/simpletag/*<
(2)在webapps\jsp-examples\WEB-INF\lib增加引用得jar包,casclient.jar。
2认证业务方法的扩展:
2.1.1配置CAS使用数据库进行验证
在MySql中的Test库中新建user表
Create
TABLE
`app_user`
(
`username`
varchar(30)
NOT
NULL
default
'
`password`
varchar(45)
PRIMARY
KEY
(`username`)
)
ENGINE=InnoDB
DEFAULT
CHARSET=utf8;
添加以下用户:
Insert
INTO
(`username`,`password`)
VALUES
('
test'
'
test'
),
test1'
);
2.1.2
修改cas项目中的deployerConfigContext.xml文件
bean
class="
org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler"
/>
注释掉该行,在其下加入:
org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"
>
property
name="
sql"
value="
select
password
from
app_user
where
username=?
"
dataSource"
ref="
/bean>
并添加一个bean:
beanid="
class="
org.springframework.jdbc.datasource.DriverManagerDataSource"
destroy-method="
close"
propertyname="
driverClassName"
value>
com.mysql.jdbc.Driver<
/value>
/property>
url"
jdbc:
mysql:
3306/test<
username"
root<
password"
2.1.3拷贝cas-server-jdbc-3.0.6.jar和mysql-connector-java-3.1.11-bin.jar到webapps/cas/WEB-INF/lib下。
3如何在这取得用户名称
%@pagecontentType="
text/html;
charset=GBK"
%>
%
Stringusername=(String)session.getAttribute("
edu.yale.its.tp.cas.client.filter.user"
p>
当前得登陆用户:
%=username%>
/p>
%
username=(String)session.getAttribute("
%>
4登陆页面的扩展:
(1)现在CAS系统中存在的两套登陆页面{project.home}/webapp/WEB-INF/view/jsp/default/ui/和{project.home}/webapp/WEB-INF/view/jsp/simple/ui
(2){project.home}/webapp/WEB-INF/cas-servlet.xml
bean
id="
viewResolver"
class="
org.springframework.web.servlet.view.ResourceBundleViewResolver"
property
name="
basename"
value="
simple_views"
order"
0"
这个bean中basename属性决定由哪个属性文件加载,simple_views.properties还是default_views.Properties
而属性文件:
{project.home}/webapp/WEB-INF/classes/default_views.properties
{project.home}/webapp/WEB-INF/classes/simple_views.properties
###Loginview(/login)
casLoginView.(class)=org.springframework.web.servlet.view.JstlView
casLoginView.url=/WEB-INF/view/jsp/default/ui/casLoginView.jsp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAS 讲义