我正在尝试更改我的网络域名的Cookie名称和超时。
这是我的领域: -
public class TTShiroWebModule extends ShiroWebModule
{
public TTShiroWebModule(ServletContext inServletContext)
{
super(inServletContext);
}
@SuppressWarnings("unchecked")
@Override
protected void configureShiroWeb()
{
bind(CacheManager.class).to(MemoryConstrainedCacheManager.class);
bindConstant().annotatedWith(Names.named("sessionManager.cookie.name")).to("SECURITYSESSIONID");
bindConstant().annotatedWith(Names.named("securityManager.sessionManager.globalSessionTimeout")).to(3600000);
expose(CacheManager.class);
expose(WebSecurityManager.class);
addFilterChain("/login/*", ANON);
addFilterChain("/markup/*", USER, NO_SESSION_CREATION);
bindRealm().to(TestRealm.class);
}
@Override
protected void bindSessionManager(AnnotatedBindingBuilder<SessionManager> inBind)
{
inBind.to(DefaultWebSessionManager.class).asEagerSingleton();
}
}
查看返回的响应,看起来我们仍在使用JSESSIONID。我做错了什么?
我在安装TTShiroWebModule之前尝试过放置bindConstant。似乎不起作用。
答案 0 :(得分:0)
我将bindSessionManager方法更改为: -
@Override
protected void bindSessionManager(AnnotatedBindingBuilder<SessionManager> inBind)
{
inBind.to(DefaultWebSessionManager.class).asEagerSingleton();
}
查看代码,我认为没有更好的方法。遗憾的是,setter方法没有用@Inject标记:(