最近决定研究网站的权限管理系统,大致认为可以分为四大块:单点登录、网页访问控制、菜单权限管理、数据库访问限制。
这周打算做单点登录的部分。我们一共三个人,当然另外两个是辅助的。找到了一个学习的好网址:
http://linliangyi2007.javaeye.com/blog/165307。
关键字: ja-sig cas sso https 单点登录 统一认证
实验背景:
系统环境: Windows XP | SUN JDK1.6U4 | Tomcat6.0.14 | CAS Server 3.1.1 + CAS Client 2.1.1
主机完整名称: Linly
浏览器: FireFox V2.0.0.11
实验步骤:
STEP 1,搭建Java Web服务器环境
安装 JDK + Tomcat 6.0.14 , HTTP端口8080 , HTTPS端口8443
JAVA_HOME = D:\Java\jdk1.6.0_04
CATALINA_HOME = D:\Java\apache-tomcat-6.0.14
安装完毕,启动Tomcat ,在浏览器上 测试 http://Linly:8080/
出现上述界面,表明系统STEP1成功搭建。
STEP 2,使用Java Keytool工具为系统生成HTTPS证书,并为系统注册
(Java Keytool相关资料可参阅:Java keytool 安全证书学习笔记), 在DOS窗体运行以下指令(建议编写一个BAT批处理文件执行)
cls
rem please set the env JAVA_HOME before run this bat file
rem delete alia tomcat if it is existed
keytool -delete -alias tomcatsso -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit
keytool -delete -alias tomcatsso -storepass changeit
(注释: 清除系统中可能存在的名字为tomcatsso 的同名证书)
rem list all alias in the cacerts
keytool -list -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit
(注释: 列出系统证书仓库中存在证书名称列表)
rem generator a key
keytool -genkey -keyalg RSA -alias tomcatsso -dname "cn=linly" -storepass changeit
(注释:指定使用RSA算法,生成别名为tomcatsso的证书,存贮口令为changeit,证书的DN为"cn=linly" ,这个DN必须同当前主机完整名称一致哦,切记!!!)rem export the key
keytool -export -alias tomcatsso -file %java_home%/jre/lib/security/tomcatsso.crt -storepass changeit
(注释: 从keystore中导出别名为tomcatsso的证书,生成文件tomcatsso.crt)rem import into trust cacerts
keytool -import -alias tomcatsso -file %java_home%/jre/lib/security/tomcatsso.crt -keystore %java_home%/jre/lib/security/cacerts -storepass changeit
(注释:将tomcatsso.crt导入jre的可信任证书仓库。注意,安装JDK是有两个jre目录,一个在jdk底下,一个是独立的jre,这里的目录必须同Tomcat使用的jre目录一致,否则后面Tomcat的HTTPS通讯就找不到证书了)
rem list all alias in the cacerts
keytool -list -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit
(注释:列出jre可信任证书仓库中证书名单,验证先前的导入是否成功,如果导入成功,应该在列表中能找到tomcatsso这个别名,如下图)
同时,在D:\Java\jdk1.6.0_04\jre\lib\security目录下能找到“tomcatsso.crt”这个文件;在C:\Documents and Settings\Linly目录下能找到“.keystore”文件。
满足上述条件则STEP2部署完成。
STEP 3,配置Tomcat的HTTPS服务
编辑D:\Java\apache-tomcat-6.0.14\conf下的server.xml文件,在connector的配置位置添加以下的配置:
引用
<Connector protocol="org.apache.coyote.http11.Http11Protocol"
port="8443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="C:/Documents and Settings/new/.keystore" keystorePass="changeit"
truststoreFile="D:/Java/jdk1.6.0_04/jre/lib/security/cacerts"
clientAuth="false" sslProtocol="TLS"/>
启动Tomcat,访问https://linly:8443/,出现以下界面说明HTTPS配置生效:
STEP 4,为HelloWorldExample程序配置CAS过滤器
访问http://linly:8080/examples/servlet/HelloWorld,出现以下界面说明应用正常启动:
编辑D:\Java\apache-tomcat-6.0.14\webapps\examples\WEB-INF下的web.xml文件,添加如下信息:
引用
<filter>
<filter-name>CAS Filter</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://Linly:8443/cas/login</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://Linly:8443/cas/serviceValidate</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
<param-value>Linly:8080</param-value>
</init-param>
</filter>
引用
<filter-mapping>
<filter-name>CAS Filter</filter-name>
<url-pattern>/servlets/servlet/HelloWorldExample</url-pattern>
</filter-mapping>
拷贝casclient.jar文件到目录D:\Java\apache-tomcat-6.0.14\webapps\examples\WEB-INF\lib下。
由于我们使用的是Tomcat6.0.14,因此,还要拷贝commons-logging-1.0.4.jar到该目录下。
STEP 5,部署JA-SIG(CAS)服务器
拷贝cas.war到D:\Java\apache-tomcat-6.0.14\webapps目录下。启动Tomcat,访问网址http://linly:8080/cas/index.jsp,出现以下画面:
输入用户名/密码 :linly/linly(任意两个相同的字窜),点击“登录”,出现以下画面:
表示CAS服务器配置运行成功。
STEP 6,测试JA-SIG(CAS)部署结果
启动Tomcat。
测试使用浏览器登陆以下网址:http://linly:8080/examples/servlets/servlet/HelloWorldExample,页面将弹出以下认证框,点击“确定”
页面将重定向到JA-SIG的SSO登录认证页面
输入用户名=密码,如:linly/linly,则通过验证,进入应用的入口界面,如下:
细心的用户将发现,此时的URL不再是:
http://linly:8080/examples/servlets/servlet/HelloWorldExample,
URL的尾端带上了一个ticket参数:
http://linly:8080/examples/servlets/servlet/HelloWorldExample?ticket=ST-2-qTcfDrdFb0bWndWgaqZD
到此,JA-SIG(CAS)服务器的初步SSO部署宣告成功。
分享到:
相关推荐
《.NET权限管理系统学习包详解》 在信息技术领域,权限管理是系统安全的重要组成部分,它涉及到用户访问控制、数据保护以及资源分配等多个方面。对于初学者和系统设计人员来说,理解并掌握权限管理系统的设计与实现...
《C#通用权限管理系统详解》 在信息技术领域,权限管理是任何系统中不可或缺的一部分,它确保用户只能访问他们被授权的资源。C#作为一种广泛应用于Windows平台开发的编程语言,其丰富的特性和强大的库支持使得构建...
在实际应用中,开发者需要理解如何配置CAS服务器,包括设置服务定义、管理用户账户和权限、以及定制登录页面等。此外,客户端集成也是关键,无论是Java应用还是PHP应用,都需要正确地处理CAS的HTTP请求和响应,以便...
标题 "cas 系统实例 服务端配置(一)" 提到的是 CAS(Central Authentication Service)系统的一个服务端配置教程。CAS 是一个开源的身份验证框架,主要用于实现单一登录(Single Sign-On, SSO)。在本教程中,我们...
CAS(Central Authentication Service)是Java开发的一个开源的单点登录(Single Sign-On,简称SSO)...如果你计划在生产环境中部署CAS,还需要考虑如何与现有的身份管理系统集成,以及如何进行故障排查和性能优化。
CAS(Central Authentication Service)是Java开发的一个开源身份验证框架,主要用于实现Web应用的单点登录(Single ...通过深入学习和实践,你可以掌握如何有效地利用CAS来提高用户访问体验,同时增强系统的安全防护。
Apache Shiro是一个强大的Java安全框架,它提供了身份验证...通过这个示例,开发者不仅可以学习到如何使用Shiro搭建一个基本的权限管理系统,还能理解如何在实际项目中灵活地应用和扩展安全框架,提高系统的安全性。
在Spring Boot应用中集成Shiro,可以实现用户登录验证、权限管理等功能。Shiro的简单API和灵活的架构使得它易于理解和使用,适合中小型项目。 Oracle数据库是企业级的关系型数据库管理系统,广泛应用于大型数据存储...
Struts2和CAS单点登录(SSO)的集成是一个常见的Web应用安全实践,它允许用户在一个系统...通过这个简单的示例,开发者可以学习如何在自己的项目中实施SSO,提高用户的安全体验,同时减少管理多个认证系统的复杂度。
CAS(Central Authentication Service)是一种广泛使用的开放源代码的单点登录(Single Sign-On,简称SSO)系统,它允许用户通过一个认证入口访问多个应用系统,而无需在每个系统上分别进行登录。在这个压缩包中,...
4. 用户和权限管理:创建用户、角色,分配权限,实现细粒度的访问控制。 5. 监控与告警:获取系统性能指标,设置阈值告警,及时了解系统状态。 6. 配置管理:修改系统配置,如虚拟化平台设置、调度策略等。 7. 资源...
CAS(Central Authentication Service)是基于Java的开源身份验证框架,主要用于实现网络应用的单点登录(Single Sign-On,...通过阅读源代码,你可以学习到CAS的内部工作原理,以及如何根据需求定制和扩展CAS服务器。
总的来说,"cas-server-3.5.0-release"压缩包为开发者和系统管理员提供了一套完整的CAS服务器环境,包括了源码、必要的库和部署文件,方便他们在自己的环境中搭建和定制CAS服务器。通过深入学习和利用这些资源,可以...
7. **监控与日志**:为了确保系统的稳定性和安全性,CAS提供详细的日志记录和监控工具,帮助管理员跟踪用户活动,检测潜在的安全问题。 8. **CAS社区**:CAS有一个活跃的开发者社区,提供文档、论坛、邮件列表等...
- **票证生命周期管理**:学习如何控制票证的有效期和清理策略,确保系统安全。 - **安全性最佳实践**:了解HTTPS的使用、防止CSRF攻击等安全措施。 通过对"casclient-3.1.6源码"的深入研究,开发者不仅可以掌握SSO...
总之,本项目提供的资源涵盖了SSO系统和权限管理的全貌,对于想要学习或构建类似系统的人来说是一份宝贵的资料。通过深入研究,不仅可以掌握SSO的工作原理,还能学习到权限控制的实践方法,提升自己的IT技能。
这个实例是专为初学者设计的,旨在帮助他们理解和实现基于CAS的单点登录(Single Sign-On, SSO)系统,同时结合Shiro进行权限管理和认证。下面我们将详细探讨这些技术以及它们如何协同工作。 **CAS (Central ...
Shiro可以处理用户的权限控制,而Pac4j提供与多种身份验证服务(包括CAS)的接口。 4. 编写安全拦截器:定义安全规则,如哪些URL需要经过CAS验证才能访问。 5. 处理回调逻辑:当用户访问需要验证的资源时,Spring ...
CAS(Central Authentication Service)是...总之,"cas单点登录4.0"的资源对于学习和实践CAS单点登录系统非常重要。无论是部署和配置CAS服务器,还是深入研究其源代码,都能帮助我们更全面地理解和掌握单点登录技术。
CAS(Central Authentication Service)单点登录系统是一种广泛应用于企业、教育机构等的权限管理解决方案,它允许用户在访问多个应用系统时只需要进行一次身份验证。本文将深入探讨CAS单点登录实例及其相关知识点。...