使用ACEGI搭建权限系统
2015-09-21 16:25
148 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/iteye_1371/article/details/82641118
使用ACEGI搭建权限系统:第三部分
三使用CAS实现单点登录
1.CAS SEVER3环境搭建
拷贝cas服务器到tomcat的部署目录下,可直接使用。
CAS默认的认证规则是用户名=密码即可登录,使用dbms认证需加入cas-server-support-jdbc.jar,ojdbc14
同时修改deployerConfigContext.xml中的authenticationHandlers配置:
修改登录页面:
修改cas\WEB-INF\view\casLoginView.jsp页面,修改为我们想要的登录页面
2.配置证书,实现ssl登录环境
web服务器需要实现SSL,资源请求通过web server上的cas client使用proxyValidate和cas之间完成认证,这些都是需要配置x.509证书
//创建根证书,并采用自签名签署它
//创建私钥
openssl genrsa -out d:/apps/root/root-key.pem 1024
//创建证书请求
openssl req -new -out d:/apps/root/root-req.csr -key d:/apps/root/root-key.pem
//自签署根证书
openssl x509 -req -in d:/apps/root/root-req.csr -out d:/apps/root/root-cert.pem -signkey d:/apps/root/root-key.pem -days 3650
//将根证书导出成浏览器支持的.p12(PKCS12)格式
openssl pkcs12 -export -clcerts -in d:/apps/root/root-cert.pem -inkey d:/apps/root/root-key.pem -out d:/apps/root/root.p12
//打印证书
keytool -printcert -file d:/apps/root/root-cert.pem
//创建服务器证书,并采用根证书签署它
//创建私钥
openssl genrsa -out d:/apps/server/server-key.pem 1024
//创建证书请求
openssl req -new -out d:/apps/server/server-req.csr -key d:/apps/server/server-key.pem
//签署服务器证书
openssl x509 -req -in d:/apps/server/server-req.csr -out d:/apps/server/server-cert.pem -signkey d:/apps/server/server-key.pem -CA d:/apps/root/root-cert.pem -CAkey d:/apps/root/root-key.pem -CAcreateserial -days 3650
//将客户证书导出成浏览器支持的.p12(PKCS12)格式
openssl pkcs12 -export -clcerts -in d:/apps/server/server-cert.pem -inkey d:/apps/server/server-key.pem -out d:/apps/server/server.p12
//打印证书
keytool -printcert -file d:/apps/server/server-cert.pem
//创建客户证书,并采用根证书签署它
//创建私钥
openssl genrsa -out d:/apps/client/client-key.pem 1024
//创建证书请求
openssl req -new -out d:/apps/client/client-req.csr -key d:/apps/client/client-key.pem
//签署客户证书
openssl x509 -req -in d:/apps/client/client-req.csr -out d:/apps/client/client-cert.pem -signkey d:/apps/client/client-key.pem -CA d:/apps/root/root-cert.pem -CAkey d:/apps/root/root-key.pem -CAcreateserial -days 3650
//将客户证书导出成浏览器支持的.p12(PKCS12)格式
openssl pkcs12 -export -clcerts -in d:/apps/client/client-cert.pem -inkey d:/apps/client/client-key.pem -out d:/apps/client/client.p12
//打印证书
keytool -printcert -file d:/apps/client/client-cert.pem
....................................
//根据根证书生成相应的jks文件
keytool -import -v -trustcacerts -storepass password -alias root -file d:/apps/root/root-cert.pem -keystore d:/apps/root/root.jks
把root.jks,root.p12,server.p12导入到tomcat的conf目录中
配置tomcat ssl,修改conf/server.xml,tomcat6中多了SSLEnabled="true"
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxHttpHeaderSize="8192" scheme="https" secure="true"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" sslProtocol="TLS" clientAuth="false"
keystoreFile="D:/apache-tomcat-6.0.29/conf/server.p12"
keystoreType="PKCS12" keystorePass="password"
truststoreFile="D:/apache-tomcat-6.0.29/conf/root.jks"
truststoreType="JKS" truststorePass="password" />
IE中导入root.p12和client.p12,root.p12导入到受信任的根证书颁发机构
修改JDK,使JDK可以找到证书
设置tomcat启动参数
-Djavax.net.ssl.trustStore=D:/apache-tomcat-6.0.29/conf/root.jks -Djavax.net.ssl.trustStorePassword=password
方法2:
keytool -import -v -trustcacerts -storepass changeit -alias root -file d:/apps/root/root-cert.pem -keystore cacerts
keytool -v -list -alias root -keystore cacerts
方法3:
<property name="ticketValidator">
<bean
class="org.acegisecurity.providers.cas.ticketvalidator.CasProxyTicketValidator">
<!-- 导入认证证书,也可使用jdk工具导入 -->
<property name="trustStore" value="C:/Tomcat 5.5/conf/root.jks" />
</property>
3.使用acegi集成CAS
这个看上面的xml就可以了。里面有解释
casAuthenticationProvider
CasProxyTicketValidator,casValidatecasValidate,trustStore,serviceProperties,proxyCallbackUrl(代理时用)和表单认证有不同
注意
serviceProperties中service属性(CAS server登陆完毕后由CAS server重定向回来的页面),多系统的环境要写好回调地址
4.单点退出的处理
配置logoutFilter,退出后调用https://localhost:8443/cas/logout接口,注销服务器端ST
<!-- 注销的url -->
<property nam 8000 e="filterProcessesUrl" value="/j_logout.do" />
</bean>
界面中紧接刷新就可以讲浏览器中PT也清除了
function logout(){
parent.window.location.reload(true);
}
三使用CAS实现单点登录
1.CAS SEVER3环境搭建
拷贝cas服务器到tomcat的部署目录下,可直接使用。
CAS默认的认证规则是用户名=密码即可登录,使用dbms认证需加入cas-server-support-jdbc.jar,ojdbc14
同时修改deployerConfigContext.xml中的authenticationHandlers配置:
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource" />
<property name="sql" value="select password from t_admin_user where login_name=?" />
<property name="passwordEncoder" ref="MD5PasswordEncoder"/>
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
<property name="url"><value>jdbc:mysql:///wsriademo</value></property>
<property name="username"><value>root</value></property>
<property name="password"><value>root</value></property>
</bean>
<bean id="MD5PasswordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
<constructor-arg index="0">
<value>MD5</value>
</constructor-arg>
</bean>
修改登录页面:
修改cas\WEB-INF\view\casLoginView.jsp页面,修改为我们想要的登录页面
2.配置证书,实现ssl登录环境
web服务器需要实现SSL,资源请求通过web server上的cas client使用proxyValidate和cas之间完成认证,这些都是需要配置x.509证书
//创建根证书,并采用自签名签署它
//创建私钥
openssl genrsa -out d:/apps/root/root-key.pem 1024
//创建证书请求
openssl req -new -out d:/apps/root/root-req.csr -key d:/apps/root/root-key.pem
//自签署根证书
openssl x509 -req -in d:/apps/root/root-req.csr -out d:/apps/root/root-cert.pem -signkey d:/apps/root/root-key.pem -days 3650
//将根证书导出成浏览器支持的.p12(PKCS12)格式
openssl pkcs12 -export -clcerts -in d:/apps/root/root-cert.pem -inkey d:/apps/root/root-key.pem -out d:/apps/root/root.p12
//打印证书
keytool -printcert -file d:/apps/root/root-cert.pem
//创建服务器证书,并采用根证书签署它
//创建私钥
openssl genrsa -out d:/apps/server/server-key.pem 1024
//创建证书请求
openssl req -new -out d:/apps/server/server-req.csr -key d:/apps/server/server-key.pem
//签署服务器证书
openssl x509 -req -in d:/apps/server/server-req.csr -out d:/apps/server/server-cert.pem -signkey d:/apps/server/server-key.pem -CA d:/apps/root/root-cert.pem -CAkey d:/apps/root/root-key.pem -CAcreateserial -days 3650
//将客户证书导出成浏览器支持的.p12(PKCS12)格式
openssl pkcs12 -export -clcerts -in d:/apps/server/server-cert.pem -inkey d:/apps/server/server-key.pem -out d:/apps/server/server.p12
//打印证书
keytool -printcert -file d:/apps/server/server-cert.pem
//创建客户证书,并采用根证书签署它
//创建私钥
openssl genrsa -out d:/apps/client/client-key.pem 1024
//创建证书请求
openssl req -new -out d:/apps/client/client-req.csr -key d:/apps/client/client-key.pem
//签署客户证书
openssl x509 -req -in d:/apps/client/client-req.csr -out d:/apps/client/client-cert.pem -signkey d:/apps/client/client-key.pem -CA d:/apps/root/root-cert.pem -CAkey d:/apps/root/root-key.pem -CAcreateserial -days 3650
//将客户证书导出成浏览器支持的.p12(PKCS12)格式
openssl pkcs12 -export -clcerts -in d:/apps/client/client-cert.pem -inkey d:/apps/client/client-key.pem -out d:/apps/client/client.p12
//打印证书
keytool -printcert -file d:/apps/client/client-cert.pem
....................................
//根据根证书生成相应的jks文件
keytool -import -v -trustcacerts -storepass password -alias root -file d:/apps/root/root-cert.pem -keystore d:/apps/root/root.jks
把root.jks,root.p12,server.p12导入到tomcat的conf目录中
配置tomcat ssl,修改conf/server.xml,tomcat6中多了SSLEnabled="true"
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxHttpHeaderSize="8192" scheme="https" secure="true"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" sslProtocol="TLS" clientAuth="false"
keystoreFile="D:/apache-tomcat-6.0.29/conf/server.p12"
keystoreType="PKCS12" keystorePass="password"
truststoreFile="D:/apache-tomcat-6.0.29/conf/root.jks"
truststoreType="JKS" truststorePass="password" />
IE中导入root.p12和client.p12,root.p12导入到受信任的根证书颁发机构
修改JDK,使JDK可以找到证书
设置tomcat启动参数
-Djavax.net.ssl.trustStore=D:/apache-tomcat-6.0.29/conf/root.jks -Djavax.net.ssl.trustStorePassword=password
方法2:
keytool -import -v -trustcacerts -storepass changeit -alias root -file d:/apps/root/root-cert.pem -keystore cacerts
keytool -v -list -alias root -keystore cacerts
方法3:
<property name="ticketValidator">
<bean
class="org.acegisecurity.providers.cas.ticketvalidator.CasProxyTicketValidator">
<!-- 导入认证证书,也可使用jdk工具导入 -->
<property name="trustStore" value="C:/Tomcat 5.5/conf/root.jks" />
</property>
3.使用acegi集成CAS
这个看上面的xml就可以了。里面有解释
casAuthenticationProvider
CasProxyTicketValidator,casValidatecasValidate,trustStore,serviceProperties,proxyCallbackUrl(代理时用)和表单认证有不同
注意
serviceProperties中service属性(CAS server登陆完毕后由CAS server重定向回来的页面),多系统的环境要写好回调地址
4.单点退出的处理
配置logoutFilter,退出后调用https://localhost:8443/cas/logout接口,注销服务器端ST
<bean id="logoutFilter" class="org.acegisecurity.ui.logout.LogoutFilter">
<!-- 注销后导向的页面 -->
<constructor-arg value="https://localhost:8443/cas/logout" />
<constructor-arg>
<list>
<bean class="org.acegisecurity.ui.logout.SecurityContextLogoutHandler" />
</list>
</constructor-arg>
<!-- 注销的url -->
<property nam 8000 e="filterProcessesUrl" value="/j_logout.do" />
</bean>
界面中紧接刷新就可以讲浏览器中PT也清除了
function logout(){
parent.window.location.reload(true);
}
相关文章推荐
- 使用ACEGI搭建权限系统:第三部分
- Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端
- 使用OpenLDAP搭建Postfix邮件系统
- 使用OpenLDAP搭建Postfix邮件系统。
- Linux系统使用笔记(文件权限与目录配置)--鸟哥的私房菜
- 使用OpenLDAP搭建Postfix邮件系统
- ASP.NET,C#.NET 通用权限系统组件源码使用说明,程序开发的尚方宝剑,程序架构标准参考,程序开发必备知识
- view connection server 验证失败 您没有权限使用该系统
- 通用权限管理系统使用说明
- Acegi + Spring + Hibernate + Struts 2搭建基于角色的权限控制系统
- 使用CodeBlocks和MSys搭建FFMPEG调试系统
- C# ASP.NET 走火入魔通用权限管理系统组件V3.2试用版下载地址【含数据库设计文档、使用手册】
- 使用JIRA搭建企业问题跟踪系统
- android系统开发指南(常用环境的搭建和使用)
- 使用springMVC搭建系统时项目出现红叉以及启动tomcat出错的原因
- RHEL 5服务篇—使用Apache搭建web服务(四)部署AWStats网站分析系统 推荐
- 【菜鸟学习Linux】-第三章- Linux环境搭建-使用VMware9安装Ubuntu 12.04系统
- Acegi + Spring + Hibernate + Struts 2搭建基于角色的权限控制系统
- 使用JAMES &amp; JavaMail搭建邮件系统
- 如何使用花生壳搭建视频监控系统