1. 程式人生 > >cas5.3.2單點登入-分散式部署(二十一)

cas5.3.2單點登入-分散式部署(二十一)

隨著使用者量的上升,單機的cas服務肯定是不行的,因此需要分散式來部署多臺,要滿足分散式部署,需要滿足下面兩個條件:
1、採用統一的ticket存取策略,所有ticket的操作都從中央快取redis中存取。
2、採用session共享,tomcat的session的存取都從中央快取redis中存取。(這一步可省略,我是將驗證碼放到了session中所以做session共享)

第一步:redis儲存ticket

參考文件

pom新增依賴

<dependency>
    <groupId>org.apereo.cas</groupId>
<artifactId>cas-server-support-redis-ticket-registry</artifactId> <version>${cas.version}</version> </dependency>

配置application.properties檔案

#配置redis儲存ticket
cas.ticket.registry.redis.host=127.0.0.1
cas.ticket.registry.redis.database=0
cas.ticket.registry.redis.port=6379
cas.ticket.registry.redis.password=wsc123456 cas.ticket.registry.redis.timeout=2000 cas.ticket.registry.redis.useSsl=false cas.ticket.registry.redis.usePool=true cas.ticket.registry.redis.pool.max-active=20 cas.ticket.registry.redis.pool.maxIdle=8 cas.ticket.registry.redis.pool.minIdle=0 cas.ticket.registry.redis.pool.maxActive=8
cas.ticket.registry.redis.pool.maxWait=-1 cas.ticket.registry.redis.pool.numTestsPerEvictionRun=0 cas.ticket.registry.redis.pool.softMinEvictableIdleTimeMillis=0 cas.ticket.registry.redis.pool.minEvictableIdleTimeMillis=0 cas.ticket.registry.redis.pool.lifo=true cas.ticket.registry.redis.pool.fairness=false cas.ticket.registry.redis.pool.testOnCreate=false cas.ticket.registry.redis.pool.testOnBorrow=false cas.ticket.registry.redis.pool.testOnReturn=false cas.ticket.registry.redis.pool.testWhileIdle=false #cas.ticket.registry.redis.sentinel.master=mymaster #cas.ticket.registry.redis.sentinel.nodes[0]=localhost:26377 #cas.ticket.registry.redis.sentinel.nodes[1]=localhost:26378 #cas.ticket.registry.redis.sentinel.nodes[2]=localhost:26379

配置結束。
重啟cas 登入之後測試一下,檢視redis 裡面是不是有CAS_TICKET:開頭的key了。
這裡寫圖片描述

第二步:session存入redis

參考文件

pom新增依賴

<dependency>
    <groupId>org.apereo.cas</groupId>
    <artifactId>cas-server-webapp-session-redis</artifactId>
    <version>${cas.version}</version>
</dependency>

配置application.properties檔案

#配置redis儲存session
cas.webflow.autoconfigure=true
cas.webflow.alwaysPauseRedirect=false
cas.webflow.refresh=true
cas.webflow.redirectSameState=false

cas.webflow.session.lockTimeout=30
cas.webflow.session.compress=false
cas.webflow.session.maxConversations=5
cas.webflow.session.storage=true
spring.session.store-type=redis
spring.redis.host=127.0.0.1
spring.redis.password=wsc123456
spring.redis.port=6379

配置結束。
重啟cas服務,進入登入頁面,進行登入。然後檢視redis 就會看到spring session等資訊。

測試

如下圖所示,啟動之後,可以看到redis中已經有了session的資訊,並且登入驗證碼也可以在redis中看到
這裡寫圖片描述