
org.paranora.ssoc.shiro.session.BasicSessionAbstract Maven / Gradle / Ivy
package org.paranora.ssoc.shiro.session;
import org.apache.shiro.session.mgt.SimpleSession;
import java.io.Serializable;
import java.util.Date;
import java.util.Map;
/**
* 由于SimpleSession lastAccessTime更改后也会调用SessionDao update方法,
* 增加标识位,如果只是更新lastAccessTime SessionDao update方法直接返回
*
* Session Attribute
* DefaultSubjectContext.PRINCIPALS_SESSION_KEY 保存 principal
* DefaultSubjectContext.AUTHENTICATED_SESSION_KEY 保存 boolean是否登陆
* @see org.apache.shiro.subject.support.DefaultSubjectContext
*/
public abstract class BasicSessionAbstract extends SimpleSession implements Serializable {
//发Last Access Time改变时间超过最少Touch周期时, 变更为isChange=true
private final static int MIN_TOUCH_PERIOD = 60000;
// 除lastAccessTime以外其他字段发生改变时为true
private boolean isChanged;
public BasicSessionAbstract() {
super();
this.setChanged(true);
}
public BasicSessionAbstract(String host) {
super(host);
this.setChanged(true);
}
@Override
public void setId(Serializable id) {
super.setId(id);
this.setChanged(true);
}
@Override
public void setStopTimestamp(Date stopTimestamp) {
super.setStopTimestamp(stopTimestamp);
this.setChanged(true);
}
@Override
public void setExpired(boolean expired) {
super.setExpired(expired);
this.setChanged(true);
}
@Override
public void setTimeout(long timeout) {
super.setTimeout(timeout);
this.setChanged(true);
}
@Override
public void setHost(String host) {
super.setHost(host);
this.setChanged(true);
}
@Override
public void setAttributes(Map
© 2015 - 2025 Weber Informatics LLC | Privacy Policy