码迷,mamicode.com
首页 > 其他好文 > 详细

[Liferay] Liferay 实现单点登录 - CAS

时间:2014-10-30 17:04:48      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:cas   liferay   openldap   单点登录   

接上一篇:Liferay 实现单点登录 - OpenLDAP


本文不介绍概念,只注重实现


Liferay : 6.1.1 CE GA2  
OpenLdap for Windows :openldap-2.4.38-x86  
Apache Directory Studio : Apache Directory Studio 2.0.0-M3  
CAS : cas-server-3.5.2  
Windows : 7 x64  

第二篇 CAS配置


下载安装


本文使用的版本为 cas-server-3.5.2-release

解压之后在  cas-server-3.5.2-release\cas-server-3.5.2\modules 目录下复制 cas-server-webapp-3.5.2.war,粘贴到 ${liferay.home}\webapps,并改名为任何你想要的名字,比如 cas-server,之后重启 Liferay server。

注意一点,网上基本所有的配置教程都提到关于 SSL 配置,在配置 SSL 之后才使用 CAS Server,其实这两者之间并没有必要关系,本文就是在没有配置 SSL 情况下使用 CAS Server。

重启 Liferay 之后,输入 url 地址 http://localhost:8080/cas-server/login,用户名与密码输入任意相同的字符串,点击登录之后如果显示登录成功,就表明 CAS Server 初步配置成功。

但注意!只是初步,很多教程很不负责任的到这一步就结束了,留下个半成品给不知所以的读者。

CAS Sever 与 Liferay 集成

修改authenticationHandlers

这一步是用来修改 CAS 验证条件,为配置的话就跟上文提到的,只要是用户名密码为相等字符串就显示登录成功
找到目录cas-server-3.5.2-release\cas-server-3.5.2\cas-server-webapp\src\main\webapp\WEB-INF,
打开deployerConfigContext.xml 文件,找到如下内容并注释或者删除

<property name="authenticationHandlers">
…
</property>

原处添加

<property name="authenticationHandlers">
	<list>
		<bean class="org.jasig.cas.adaptors.ldap.BindLdapAuthenticationHandler"
			p:filter="uid=%u"
			p:searchBase="dc=example,dc=com"
          		p:contextSource-ref="contextSource" />
	</list>
</property>


p:filter="uid=%u" - 注意这里是使用 uid 进行过滤,当然也可以是 sn,这个取决与在创建 user 时的 RDN,如下图


bubuko.com,布布扣


p:searchBase="dc=example,dc=com" - 对应于 DIT 的 root entry,关于 DIT 可以查看上一篇


增加contextSource

在文件结尾处的 </beans> 之前添加

<bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource">
      <property name="pooled" value="true"/>
      <property name="urls">
        <list>
          <value>ldap://localhost:389</value>
        </list>
      </property>
      <!-- <property name="userDn" value="cn=jimbob, dc=example, dc=com"/> -->
      <property name="userDn" value="cn=jimbob,dc=example,dc=com"/>
      <property name="password" value="dirtysecret"/>
      <property name="baseEnvironmentProperties">
        <map>
          <!-- Three seconds is an eternity to users. -->
          <entry key="com.sun.jndi.ldap.connect.timeout" value="3000" />
          <entry key="com.sun.jndi.ldap.read.timeout" value="3000" />
          <entry key="java.naming.security.authentication" value="simple" />
        </map>
      </property>
</bean>

修改Maven 的 pom.xml 并编译

在 cas-server-3.5.2-release\cas-server-3.5.2\cas-server-webapp 目录找到并打开 pom.xml,在第一个dependency 之前添加如下,并编译

<dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>cas-server-support-ldap</artifactId>
      <version>${project.version}</version>
</dependency>

使用 mvn install 指令编译,在以下目录找到编译后的 war 文件,复制粘贴到${liferay.home}\webapps , 重启 Liferay server

bubuko.com,布布扣

如果没有 Maven 环境,或者编译失败,也可以直接在cas-server-3.5.2-release\cas-server-3.5.2\modules 找到cas-server-support-ldap-3.5.2.jar,并复制粘贴到${liferay.home}\webapps\cas-server\WEB-INF\lib,一样的效果,我是没明白为什么非要自己编译一遍。

完成上一步之后如果直接使用 CAS Server 会包括,因为还少一个包,spring-ldap-core-1.3.2.RELEASE.jar,自己到网上下载一个,同意粘贴到${liferay.home}\webapps\cas-server\WEB-INF\lib 就好。

Liferay 配置 CAS Server

bubuko.com,布布扣


至此为止, CAS Server 与 Liferay 的集成才算完成。

[Liferay] Liferay 实现单点登录 - CAS

标签:cas   liferay   openldap   单点登录   

原文地址:http://blog.csdn.net/paranoid_android/article/details/40621621

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!