cas5.3.2單點登入-分散式部署(二十一)
阿新 • • 發佈:2019-02-02
隨著使用者量的上升,單機的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中看到