默认情况下,cas是将票据信息存储到内存中,我们可以将票据存储到redis服务器中,cas采用的spring data redis 来控制redis
将票据存储到redis需要两个步骤:
配置cas关于redis的依赖,
配置application.properties,添加redis的配置信息。
有关redis的安装配置,请参考底部教程参考链接。
pom.xml 配置
<!--redis支持,将票据存在redis,默认是内存中--> <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-support-redis-ticket-registry</artifactId> <version>${cas.version}</version> </dependency>
application.properties 部分配置
## # CAS Authentication Credentials # cas.authn.accept.users=tingfeng::tingfeng #取消x-frame-options为deny限制,允许外部项目使用iframe嵌入cas-server登录页面 cas.httpWebRequest.header.xframe=false ## # 开启json服务注册 # cas.serviceRegistry.initFromJson=true ## # 登出后允许跳转到指定页面 # cas.logout.followServiceRedirects=true # ST、PT 票据(生命周期) cas.ticket.st.timeToKillInSeconds=20 cas.ticket.pt.timeToKillInSeconds=20 # 表示不对TGC进行加密,默认是true,TGC其实就是TGT经过JWT加密后的值而已(浏览器debug可见) #cas.tgc.crypto.enabled=false ## # redis配置,将ticket票据存在redis中,默认在内存里 # cas.ticket.registry.redis.host=127.0.0.1 cas.ticket.registry.redis.database=1 cas.ticket.registry.redis.port=6379 # cas.ticket.registry.redis.password=tingfengg cas.ticket.registry.redis.timeout=2000 cas.ticket.registry.redis.useSsl=false #不设置redis线程池 cas.ticket.registry.redis.usePool=false
如果需要redis密码访问,查看redis.config中密码的设置
测试
我们先通过网站登录,然后手动清空缓存
默认生成的TGC是加密的,如果不需要加密,配置增加参数:cas.tgc.crypto.enabled=false
查看redis数据。key的格式为:CAS_TIVKET: TGT值
参考文章
windows下redis的安装使用教程 :https://www.youcl.com/info/3056
MacOS 系统安装 Redis:https://www.youcl.com/info/3133
https://apereo.github.io/cas/5.2.x/installation/Redis-Ticket-Registry.html
https://apereo.github.io/cas/5.2.x/installation/Configuration-Properties.html#redis-ticket-regisry