使用会话
可以从当前的Subject中获取会话。
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
session.setAttribute( "someKey", someValue);
获取session的subject.getSession()方法等价于currentUser.getSubject(true)。
- Suject.getSession(boolean create) 与web中的 HttpServletRequest.getSession(boolean create) 类似。
- 如果Subject已经拥有一个session,则方法中的boolean类型参数将会忽略,并直接返回已经存在的session。
- 如果Subject里没有拥有session,如果参数为true,则创建一个新的session并返回。
- 如果Subject里没有拥有session,如果参数为false,则不会创建新的session,并返回null。
返回值 | 方法名 | 描述 |
Object | getAttribute(Object key) | 根据key标识返回绑定到session的对象 |
Collection<Object> | getAttributeKeys() | 获取在session中存储的所有的key |
String | getHost() | 获取当前主机ip地址,如果未知,返回null |
Serializable | getId() | 获取session的唯一id |
Date | getLastAccessTime() | 获取最后的访问时间 |
Date | getStartTimestamp() | 获取session的启动时间 |
long | getTimeout() | 获取session失效时间,单位毫秒 |
void | setTimeout(long maxIdleTimeInMillis) | 设置session的失效时间 |
Object | removeAttribute(Object key) | 通过key移除session中绑定的对象 |
void | setAttribute(Object key, Object value) | 设置session会话属性 |
void | stop() | 销毁会话 |
void | touch() | 更新会话最后访问时间 |