当前位置:文档之家› CAS单点登录集群方案

CAS单点登录集群方案

目录

简介 (2)

1.1 tomcat的配置 (3)

1.2 nginx的配置 (7)

1.3 tomcat session共享 (12)

1.5 ticket共享 (14)

简介

cas的集群主要分为两部分,一是session的集群,二是登录之后产生的ticket的集群。对于cas ticket集群,目前测试通过的是memcached ticket repository。对于tomcat的session复制及会话粘性的方法有如下方案:memcached-session-mamanger 方式。

集群环境:

1. nginx最新版本:1.8.1

支持https

2. 2个tomcat版本:7

tomcat1:192.168.1.100:8081

tomcat2:192.168.1.100:8082

3. memcached最新版本:1.

4.13

4. session复制同步使用memcache-session-manager最新版本:1.6.3

5. ticket共享使用的memcached ticket repository

6.系统:windows7(一台机器)

1.1 tomcat的配置

1、部署cas.war包

D:\cas-erver-3.5.2.1\modules文件夹下,把cas-server-webapp-3.5.2.1.war拷贝到Tomcat安装目录的webapps文件夹下。为了方便在浏览器中浏览,把cas-server-webapp-3.5.2.1.war文件名修改为cas.war。

2、修改tomcat端口,conf下的server.xml有三处要修改

第一处:

第二处:

第三处:

3、启动tomcat,进入bin目录下,双击startup.bat文件启动。

4、停止tomcat,对cas数据库连接和取消https进行配置

第一,配置数据库连接方式:

(1)复制D:\cas-server-3.5.2.1\modules下面cas-server-support-jdbc-3.5.2.1.jar到$TOMCAT_HOME$\webapps\cas\WEB-INF\lib下。数据库为Oracle,因此把Oracle驱动包也复制到lib文件夹下。ojdbc14.jar

(2) 打开$TOMCAT_HOME$\webapps\cas\WEB-INF\deployerConfigContext.xml文件,在beans 标签里面最后的位置添加如下配置信息:

class="org.springframework.jdbc.datasource.DriverManagerDataSource">

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:@127.0.0.1:1521:orcl

ibusscreen

123456

class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">

MD5

(3)删除SimpleTestUsernamePasswordAuthenticationHandler bean,添加自己的sql

class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">

第二,取消https

CAS 取消HTTPS 验证之后则可以使用HTTP协议进行CAS服务器和Client之间单点登录,安全性低,CAS不建议这样做,但是若在局域网内部使用的话,但用无妨。集群环境证书加载nginx端,后端不需要加证书。

(1)修改cas server 下\WEB-INF\deployerConfigContext.xml 文件

class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationH andler" p:httpClient-ref="httpClient" p:requireSecure="false"/>

增加参数p:requireSecure="false",是否需要安全验证,即HTTPS,false 为不采用。

(2)修改cas server下\WEB-INF\spring-configuration\ticketGrantingTicketCookieGenerator.xml 文件

xmlns:xsi="https://www.doczj.com/doc/c018631738.html,/2001/XMLSchema-instance"

xmlns:p="https://www.doczj.com/doc/c018631738.html,/schema/p"

xsi:schemaLocation="https://www.doczj.com/doc/c018631738.html,/schema/beans

https://www.doczj.com/doc/c018631738.html,/schema/beans/spring-beans-2.0.xsd">

Defines the cookie that stores the TicketGrantingTicket. You most likely should never

modify these (especially the "secure" property).

You can change the name if you want to make it harder for people to guess.

id="ticketGrantingTicketCookieGenerator"

class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"

p:cookieSecure="false"

p:cookieMaxAge="-1"

p:cookieName="CASTGC"

p:cookiePath="/cas" />

参数p:cookieSecure="true",TRUE 为采用HTTPS 验证,与deployerConfigContext.xml 的参数保持一致。

(3)修改cas server 下\WEB-INF\spring-configuration\warnCookieGenerator.xml 文件

class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"

p:cookieSecure="false"

p:cookieMaxAge="-1"

p:cookieName="CASPRIVACY"

p:cookiePath="/cas" />

两个参数与上面同理。

5、所有都配置好之后,启动tomcat。在浏览器上输入http:// https://www.doczj.com/doc/c018631738.html,:8081/cas(注意:sso必须使用域名,这里使用的是https://www.doczj.com/doc/c018631738.html,,本地测试可以在hosts文件中添加此域名映射),输入用户名和密码登录进去。到此cas服务器搭建完成。该登录页面可以根据实际情况修改成项目中所需要的。

tomcat1配置完成后,tomcat2也需要做同样的配置,注意两个tomcat端口不一样。这里配置的是https://www.doczj.com/doc/c018631738.html,:8081和https://www.doczj.com/doc/c018631738.html,:8082

1.2 nginx的配置

1、配置负载均衡

修改conf/nginx.conf文件

配置好之后,双击nginx.exe启动。

为了测试,将两个tomcat下的cas登录页面用1和2区分下,修改

$TOMCAT_HOME$/webapps/cas/WEB-INF/view/jsp/default/ui/casLoginView.jsp。

然后在浏览器输入https://www.doczj.com/doc/c018631738.html,/cas,多刷新几次,你可以看出nginx是随意分配请求到tomcat1和tomcat2

2、ssl配置

(1)安装openssl,双击Win32OpenSSL-0_9_8l.exe进行安装,按照提示一步一步安装(2)生成证书

以管理员省份进入dos系统,进入openssl安装目录下的bin目录中:

a、openssl genrsa -des3 -out server.key 1024

b、openssl req -new -key server.key -out server.csr

c、openssl rsa -in server.key -out server_nopass.key

d、openssl req -new -x509 -days 3650 -key server_nopass.key -out server.crt

第一个文件会提示设个密码,必须是4位,后面会用到这个密码。

第二个文件需要提供一些参数,像国家、省市、公司、域名等。

总共会生成四个文件。

具体命令使用方法可以百度。

(3)修改nginx.conf

conf下的nginx.conf文件编辑:

(4)启动nginx,浏览器输入https://https://www.doczj.com/doc/c018631738.html,/cas/login

1.3 tomcat session共享

1、memcached安装

在CMD下输入"memcached.exe -d install" 安装

安装成功之后,memcached将作为windows的一个服务每次开机时自动启动。默认端口:11211。在服务里找的memcached服务,点启动服务。

2、jar包添加

停止tomcat服务,将下列jar 添加到TOMCAT安装目录下的lib/中

注意:memcached-session-manager-tc6-1.6.3.jar 和memcached-session-manager-tc7-1.6.3.jar 分别对应tomcat6和tomcat7

3、修改文件$TOMCAT_HOME$/conf/context.xml(两个tomcat中的都需要修改),在Context 标签中加入如下代码:

className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

memcachedNodes="n1:https://www.doczj.com/doc/c018631738.html,:11211" //目前机器只安装了一个memcached,所以这里只写一个节点OK

sticky="false"

sessionBackupTimeout="1800000"

sessionBackupAsync="false"

transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/>//序列化类

1.5 ticket共享

1.找到cas/webapp/WEB-INF/spring-configuration/ticketRegistry.xml原始文件(cas发布默认配置)

2.将

改为

3.增加

p:servers="host1:11211,host2:11211,host3:11211"

p:protocol="BINARY"

p:locatorType="CONSISTENT"

p:failureMode="Redistribute"

p:transcoder-ref="kryoTranscoder">

static-field="net.spy.memcached.DefaultHashAlgorithm.${memcached.hashAlgorithm}" />

class="org.jasig.cas.ticket.registry.support.kryo.KryoTranscoder" init-method="initialize">

4.删除

id="ticketRegistryCleaner"

class="org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner"

p:ticketRegistry-ref="ticketRegistry" />

id="jobDetailTicketRegistryCleaner"

class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"

p:targetObject-ref="ticketRegistryCleaner"

p:targetMethod="clean" />

id="triggerJobDetailTicketRegistryCleaner"

class="org.springframework.scheduling.quartz.SimpleTriggerBean"

p:jobDetail-ref="jobDetailTicketRegistryCleaner"

p:startDelay="20000"

p:repeatInterval="5000000" />

虽然memcached节点的ticket会过期,但是过期的ticket的处理由memcached服务器节点自己完成的,所以不需要配置ticket cleaner。

5、beans标签换成下面的这段

xmlns:xsi="https://www.doczj.com/doc/c018631738.html,/2001/XMLSchema-instance"

xmlns:util="https://www.doczj.com/doc/c018631738.html,/schema/util"

xmlns:p="https://www.doczj.com/doc/c018631738.html,/schema/p"

xsi:schemaLocation="https://www.doczj.com/doc/c018631738.html,/schema/beans

https://www.doczj.com/doc/c018631738.html,/schema/beans/spring-beans-3.1.xsd

https://www.doczj.com/doc/c018631738.html,/schema/util

https://www.doczj.com/doc/c018631738.html,/schema/util/spring-util-3.1.xsd">

6.增加jar,将jar包添加到cas/WEB-INF/lib下

cas-server-integration-memcached-3.5.2.jar

spymemcached-xxx.jar

kryo-xxx.jar

mockito-core-xxx.jar

tomcat2也要做同样的配置

7、最后,启动服务

相关主题
文本预览
相关文档 最新文档