TGT、ST数据共享
多台CAS服务器共享TGT、ST数据,由于TGT、ST数据没有存储到SESSION中,所以需要单独处理TGT、ST数据的共享。可采用的方式有多种,例如:redis、memcached等NOSQL数据库,登录量小的可以选择关系型数据库等。Redis:
1、继承AbstractDistributedTicketRegistry类,重写ticket的增删改查方法
import java.util.Collection;
import org.apache.commons.lang.SerializationUtils;
import org.jasig.cas.ticket.Ticket;
import org.jasig.cas.ticket.TicketGrantingTicket;
import org.jasig.cas.ticket.registry.AbstractDistributedTicketRegistry;
import redis.clients.jedis.Jedis;
public class RedisTicketRegistry extends AbstractDistributedTicketRegistry {
//st ticket 最大空闲时间
private int stMaxFreeTime;
//tgt ticket 最大空闲时间
private int tgtMaxFreeTime;
private static Jedis jedis = new Jedis("localhost");
/**
* 添加票据
* Description
* @param ticket
* @see org.jasig.cas.ticket.registry.TicketRegistry#addTicket(org.jasig.cas.ticket.Ticket)
*/
@Override
publ