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

接上一篇: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,如下图



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



如果没有 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



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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值