您的位置:首页 > 其它

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

2017-09-30 14:56 399 查看
一、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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: