国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 互联网 > [Liferay] Liferay 实现单点登录 - CAS

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

来源:程序员人生   发布时间:2014-11-11 08:20:16 阅读次数:3374次

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


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


Liferay : 6.1.1 CE GA2 OpenLdap for Windows :openldap⑵.4.38-x86 Apache Directory Studio : Apache Directory Studio 2.0.0-M3 CAS : cas-server⑶.5.2 Windows : 7 x64

第2篇 CAS配置


下载安装

下载地址 :https://www.apereo.org/cas/download

本文使用的版本为 cas-server⑶.5.2-release

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

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

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

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

CAS Sever 与 Liferay 集成

修改authenticationHandlers

这1步是用来修改 CAS 验证条件,为配置的话就跟上文提到的,只要是用户名密码为相等字符串就显示登录成功
找到目录cas-server⑶.5.2-releasecas-server⑶.5.2cas-server-webappsrcmainwebappWEB-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 可以查看上1篇


增加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⑶.5.2-releasecas-server⑶.5.2cas-server-webapp 目录找到并打开 pom.xml,在第1个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⑶.5.2-releasecas-server⑶.5.2modules 找到cas-server-support-ldap⑶.5.2.jar,并复制粘贴到${liferay.home}webappscas-serverWEB-INFlib,1样的效果,我是没明白为何非要自己编译1遍。

完成上1步以后如果直接使用 CAS Server 会包括,由于还少1个包,spring-ldap-core⑴.3.2.RELEASE.jar,自己到网上下载1个,同意粘贴到${liferay.home}webappscas-serverWEB-INFlib 就好。

Liferay 配置 CAS Server



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

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生