开源门户技术LifeRay6.0+Cas3.4集成手册
1 LifeRay介绍
1.1 简单介绍
Liferay(又称Liferay Portal)是一个开源门户项目,该项目包含了一个完整的J2EE应用。该项目使用了Web、EJB以及JMS等技术,特别是其前台界面部分使用Struts 框架技术,基于XML的portlet配置文件可以自由地动态扩展,使用了Web Services来支持一些远程信息的获取,使用 Apahce Lucene实现全文检索功能基本概念
1.2 主要特点
提供单一登陆接口,多认证模式(LDAP或SQL)
管理员能通过用户界面轻松管理用户,组,角色
用户能可以根据需要定制个性化的portal layout
4、能够在主流的J2EE应用服务器上运行,如JBoss+Jetty/Tomcat JOnAS
5、支持主流的数据库,如PostgreSQL MySQL
6、使用了第三方的开源项目,如Hibernate Lucene Struts
7、支持包括中文在内的多种语言
8、采用最先进的技术 Java EJB JMS SOAP XML
2 LifeRay安装
2.1 版本说明
当前最高版本为:liferay-portal-tomcat-6.0.6
下载地址 : http://sourceforge.net/projects/lportal/files/Liferay%20Portal/6.0.6/liferay-portal-tomcat-6.0.6-20110225.zip/download
2.2 安装说明
2.2.1 下载 liferay-portal-tomcat-6.0.6 解压到E:\ liferay-portal-6.0.6
2.2.2 目录结构浏览
2.2.3 打开 tomcat-6.0.29/bin目录 运行 startup.bat
2.2.4 打开浏览器地址 输入地址http://localhost:8080/ 出现如下liferay6界面
2.2.5 部署成功 可以用 用户名 test@liferay.com 密码 test 登录 具体liferay 使用操作 请参考使用手册
2.2.6 数据库配置
默认使用的数据库是hsql 数据库 可以通过portal-ext.properties 中对数据库设置
添加如下代码
jdbc.default.driverClassName=com.mysql.jdbc.Driver
jdbc.default.url=jdbc:mysql://localhost/lportal?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
jdbc.default.username=root
jdbc.default.password=root
将该文件复制到D:\liferay-portal-6.0.6\tomcat-6.0.29\webapps\ROOT\WEB-INF\classes\目录下,
并且将相应的数据库驱动包 复制到 lib路径下
重新启动liferay
LifeRay 自动完成数据库的表创建 和导入工作
2.2.7 控制台乱码问题解决
修改D:\liferay-portal-6.0.6\tomcat-6.0.29\conf\ logging.properties 文件
添加如下代码
java.util.logging.ConsoleHandler.encoding =gbk
重新启动即可
3 Cas介绍
3.1 简单介绍
3.1.1 单点登录
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
3.1.2 技术实现机制
当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行效验,检查ticket的合法性。如果通过效验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了
3.2 数字签名
3.2.1 概念
数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证
3.2.2 主要功能
保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。
数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送的公钥才能解密被加密的摘要信息,然后用 HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程 中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性
3.3 数字证书
3.3.1 概念
数字证书就是互联网通讯中标志通讯各方身份信息的一系列数据,提供了一种在Internet上验证您身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个由权威机构---CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名
3.3.2 证书内容
1 根证书
2 服务器证书
4 Cas 3.0 安装
4.1 版本说明
当前最高版本为:cas-server-3.4.7-release
下载地址 : http://www.ja-sig.org/downloads/cas/cas-server-3.4.7-release.zip
本例中使用版本为cas-server-3.4.7
4.2 安装说明
4.2.1 解压cas-server-3.4.7-release.zip 得到如下目录
4.2.2 打开modules目录 将cas-server-webapp-3.4.7.war 部署到tomcat路径上
cas-server-webapp-3.4.7 更名为cas-web
4.2.3 配置生成数字证书
利用Java的keytool工具生成数字证书
前提:配置好环境变量JAVA_HOME,如本人配置:JAVA_HOME=C:\Program Files\Java\jdk1.6.0_10
在cmd下,进入%JAVA_HOME%\jre\lib\security目录
1)生成数字证书
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore
注意:
您的名字与姓氏是什么?[Unknown]:主机名 (这里要填写正确的主机名)
2)导入数字证书
keytool -export -alias tomcat -keypass changeit -storepass changeit -file server.crt -keystore server.keystore
3)将数字证书导入当前tomcat所使用jre可信区
keytool -import -alias tomcat -file server.crt -keypass changeit -storepass changeit -keystore cacerts
4.2.4 配置Cas服务器tomcat
复制%JAVA_HOME%\jre\lib\security目录下的server.keystore文件到tomcat-server根目录下(此步主要用于step3:keystoreFile=”/server.keystore。此步可以省略,则keystoreFile=” %JAVA_HOME%\jre\lib\security\server.keystore”)
修改tomcat-server的server.xml文件,避免tomcat-server与tomcat-client冲突。主要注意以下地方:
Server port=”8005”修改为”8006”
<Connector port="8080" protocol="HTTP/1.1"...修改端口或直接注释掉
为tomcat配置SSL
在tomcat-server的server.xml中加入以下代码
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/server.keystore"
keystorePass="changeit"/>
注意:不同版本的tomcat配置不同
4.2.5 启动Cas 认证服务器
启动tomcat-server,访问https://locahost:8443/cas-web,进入cas登录页面。至此cas服务端tomcat配置完成
4.3 配置cas 数据库验证
4.3.1 新建认证用户表 tb_user
create table tb_user
(
id int not null auto_increment,
username varchar(50) not null,
password varchar(50) not null,
primary key (id)
);
在表中添加需要认证的用户数据
4.3.2 配置WebRoot/WEB-INF/deployerConfigContext.xml配置文件
在文件92 行处 删除
<bean
class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
更改为 <bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource" />
<property name="sql" value="select password from tb_user where username =?" />
<property name="passwordEncoder" ref="MD5PasswordEncoder"/>
</bean>
在文件最后添加 如下代码
<bean id="auditTrailManager" class="com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager" />
<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://localhost:3306/cas</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>
复制相应的数据库驱动包到 lib 目录
4.3.3 启动cas认证服务器
输入用户名和密码 提示登录成功
5 Cas 与 LifeRay 集成
5.1 客户端证书 认证
将数字证书导入LifeRay服务器所使用的jre可信区 注意证书路径
server.crt : Cas 使用jre路径 例如C:\Program Files\Java\jdk1.6.0_10\jre\lib\security
cacerts : LifeRay 使用jre 路径
执行命令:
keytool -import -alias tomcat -file server.crt -keypass changeit -storepass changeit -keystore cacerts
5.2 LifeRay 系统设置
5.2.1 登录系统 打开liferay 控制面板—> 设置—认证 出现如下界面
如果使用邮箱认证, 则选择按电子邮件认证 如果登录名验证 则按屏幕显示名称设置
5.2.2 选择cas选项卡 设置cas 参数配置如下
保存设置
5.3 测试配置
启动Lifray 和cas 打开浏览器 输入地址http://localhost:8080/ 点击登录 右上角登录按钮
点击登录后跳转到cas 登录界面
输入 用户名和密码 点击登录 成功跳转到liferay 个人页面 右上角显示 登录成功
点击注销 系统跳转到cas注销成功页面
6 Cas 与 其他应用系统的集成 (以workflow)
6.1 客户端证书配置
将数字证书导入应用workflow服务器所使用的jre可信区 注意证书路径
server.crt : Cas 使用jre路径 例如C:\Program Files\Java\jdk1.6.0_10\jre\lib\security
cacerts : workflow 使用jre 路径
执行命令:
keytool -import -alias tomcat -file server.crt -keypass changeit -storepass changeit -keystore cacerts
6.2 Cas client 客户端配置
6.2.1 向 workflow的应用程序lib中导入cas-client-core-3.2.0.jar
6.2.2 配置workflow程序中 web.xml 过滤器
1)用户认证过滤器
<filter>
<filter-name>CAS Authentication Filter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<param-value>https://localhost:8443/cas/login</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://localhost:8080</param-value>
</init-param>
<!-- 如果指定登录地址则可以配置为 --!>
<!—
<init-param>
<param-name>server</param-name>
<param-value>http://localhost:8080/login.do</param-value>
</init-param>
--!>
</filter>
<filter-mapping>
<filter-name>CAS Authentication Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2)Ticket认证过滤器
<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas10TicketValidationFilter
</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https:/ localhost:8443/cas</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://localhost:8080</param-value>
</init-param>
<!-- 如果指定登录地址则可以配置为 --!>
<!—
<init-param>
<param-name>server</param-name>
<param-value>http://localhost:8080/login.do</param-value>
</init-param>
--!>
<init-param>
<param-name>redirectAfterValidation</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3)请求处理过滤器
<filter>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
6.3 客户端登录模块调整
修改系统登录逻辑 当用户密码为空时 从cas Session中获取用户
HttpServletRequest request = ServletActionContext.getRequest();
AttributePrincipal principal = (AttributePrincipal)request.getUserPrincipal();
String username = principal.getName();
注意不同cas版本,获取用户的方法不同
控制跳转至成功页面
分享到:
相关推荐
标题 "Liferay + CAS + LDAP 集成配置" 涉及到的是在企业级内容管理系统 Liferay 中集成 Central Authentication Service (CAS) 和 Lightweight Directory Access Protocol (LDAP) 的过程。这种集成允许用户通过CAS...
### Liferay 6.0 开发指南核心知识点详解 #### 一、引言与核心技术 在《Liferay 6.0 开发指南》中,首先介绍了Liferay 6.0的核心技术及其开发策略。Liferay是一款强大的开源门户平台,支持企业级应用的构建与部署...
**Liferay 6 + Struts 2 集成项目详解** 在Web应用程序开发中,Liferay Portal和Struts 2框架的结合使用可以提供强大的功能和灵活性。Liferay是一款开源的企业级门户平台,它提供了内容管理、社交网络、工作流等...
【LifeRay+CAS+LDAP+Tomcat 单点登录门户】是一种常见的企业级身份验证解决方案,它结合了多个组件来实现高效、安全的用户登录管理。在这个架构中,LifeRay 是一个开源的内容管理系统,用于构建企业门户;CAS...
### Liferay 6.0 开发指南核心知识点详解 #### 一、引言与概述 Liferay是一款功能强大且设计优秀的开源门户系统,其版本6.0尤其在多个方面进行了优化和完善,为开发者提供了更加友好和高效的工作环境。本指南旨在...
【Liferay + CAS 实现单点登录步骤】 在IT领域,单点登录(Single Sign-On,简称SSO)是一种方便用户管理和身份验证的技术,它允许用户通过一次登录就能访问多个相互关联的应用系统,无需多次输入凭证。Liferay是一...
### Liferay 6.0 源码部署详解 #### 一、概述 Liferay是一款开源的企业级内容管理系统,能够帮助组织快速构建企业门户、社交协作平台等应用。本文将详细介绍如何通过源码方式部署Liferay 6.0,包括对部署脚本的...
- **集成 Liferay**:在 Liferay 中配置 CAS 作为认证提供者,这可能涉及修改 Liferay 的 `portal-ext.properties` 文件,添加 CAS 服务器的相关配置,比如 CAS 服务器的 URL、服务验证 URL 等。 - **测试集成**:...
cas服务端自定义数据库所需jar包,集成liferay6.2源码改动
本指南将基于提供的"liferay 6.2开发指南+用户手册"来深入讲解其核心知识点。 1. **Liferay Portal概述** Liferay Portal是一个强大的企业门户解决方案,支持多租户、个性化视图和可扩展的插件架构。6.2版本在前一...
### Liferay5.1.2 + NetBeans6.5 开发环境配置详解 #### 一、环境准备 在搭建Liferay5.1.2 + NetBeans6.5开发环境之前,需要确保以下基础软件已正确安装: 1. **JDK**: Java Development Kit,用于提供Java开发...
这是我学习Liferay做的一个实例,测试已通过,希望你们好好学习!
以下是如何将Liferay 5.2.3与CAS 3.0.5集成的详细步骤: 1. **CAS Server的安装与配置**: - 安装环境:确保你有一台运行JDK 1.6.0_07和MySQL 5的服务器,以及Apache Tomcat 6.0.16。 - 生成安全证书:使用`...
Liferay、CAS(Central Authentication Service)和LDAP(Lightweight Directory Access Protocol)的集成配置是一项复杂的任务,尤其对于那些在IT领域中专注于身份验证和授权管理的研究者来说。以下将详细介绍如何...
【Liferay 门户集成CAS实现单点登录与应用系统集成】是将开源门户平台Liferay与中央认证服务(CAS)相结合,以实现用户在多个应用系统间的统一登录体验。Liferay是一个基于Java的企业级门户解决方案,它具备强大的...
### Liferay 6.1 + CAS 初始化环境搭建及门户解决方案 #### 一、Liferay 6.1 门户介绍 **1.1 简单介绍** ...无论是Liferay本身的特性还是与CAS的集成,都能够满足大多数企业对于门户平台的需求。
总之,"cas-server-3.4.3.1-release.zip"是一个用于与Liferay 6.0.5集成的CAS服务器版本,提供了统一认证的功能,简化了用户的登录流程,提高了系统的安全性。这个压缩包包含了一整套运行和开发CAS服务器所需的所有...
Liferay是一款功能强大的开源企业级门户平台...总之,Liferay的CAS SSO实现是通过集成CAS服务器和配置Liferay的安全策略来完成的,这一功能对于多应用环境的企业级门户至关重要,它可以提供便捷、安全的用户登录体验。
统一身份认证-CAS配置实现 SSO单点登录Spring-Security+&+CAS+使用手册 统一身份认证-CAS配置实现 CAS登录验证(密码MD5、SHA加密后_再进行Base64加密实现代码)_与Liferay的用户身份验证对应
总结来说,"liferay + struts2 + spring + ibatis"的整合案例提供了一个实践性的学习平台,帮助开发者掌握这些技术的集成与应用,提升企业级应用开发能力。通过深入研究和实践,可以更好地理解和运用这些框架,为...