shiro学习随笔【五】自定义生成会话ID--SessionIdGenerator

一、shiro的SessionDAO实现使用SessionIdGenerator接口自动的生成会话session ID;

 

二、SessionIdGenerator的具体实现类是JavaUuidSessionIdGenerator,生成会话ID的方法如下:

 

	public Serializable generateId(Session session) {
		return UUID.randomUUID().toString();
	}


三、我们可以自定义生成会话ID的方法,具体的类需要实现SessionIdGenerator接口,如下所示:

 

 

package ggauth.shiro.user.common;

import java.io.Serializable;

import org.apache.shiro.session.Session;
import org.apache.shiro.session.mgt.eis.JavaUuidSessionIdGenerator;
import org.apache.shiro.session.mgt.eis.SessionIdGenerator;

import framework.store.log.GGLogger;

/**
 * @Description:TODO
 * @version 1.0
 * @since JDK1.7
 * @author yaomy
 * @company xxxxxxxxxxxxxx
 * @copyright (c) 2017 yaomy Co'Ltd Inc. All rights reserved.
 * @date 2017年9月28日 下午4:59:11
 */
public class UuidSessionIdGenerator implements SessionIdGenerator{

	@Override
	public Serializable generateId(Session session) {
		Serializable uuid = new JavaUuidSessionIdGenerator().generateId(session);
		GGLogger.info("生成的sessionid是:"+uuid);
		return uuid;
	}

}


四、上一步已经实现了会话ID的自动生成类接下来就是如何是程序自动的加载我们的实现类了,其实很简单只需要如下配置就可以自动的加载我们的实现类了

 

 

###自定义生成sessionid
sessionIdGenerator=ggauth.shiro.user.common.UuidSessionIdGenerator
securityManager.sessionManager.sessionDAO.sessionIdGenerator=$sessionIdGenerator

 

 

 

 

 

你可能感兴趣的:(【Java】)