`
skeans
  • 浏览: 11261 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

LifeRay6.0+Cas3.4集成手册

阅读更多
 


                     
开源门户技术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版本,获取用户的方法不同
控制跳转至成功页面

分享到:
评论
3 楼 赵武艺 2012-09-17  
最好把要准备的工作写完整,我按照你的数据库都配不成功!
2 楼 skeans 2012-01-03  
抱歉 当时没有截图
1 楼 ruanwxh 2011-12-28  
看不到图啊

相关推荐

Global site tag (gtag.js) - Google Analytics