第一次訪問項(xiàng)目,shiro報(bào)no session錯(cuò)誤,異常如下:
org.apache.shiro.session.UnknownSessionException: There is no session with id [de08201c-fa60-4619-b5ab-477f05f8c50d]
原因:shiro中的Cookie默認(rèn)名稱是JSESSIONID,而servlet容器也是JSESSIONID,導(dǎo)致沖突,因此需改變shiro中的Cookie中的名稱,代碼如下:
@Configuration
public class ShiroConfig {
@Bean("sessionManager")
public SessionManager sessionManager(ShiroSessionDao shiroSessionDa){
DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
sessionManager.setGlobalSessionTimeout(60 * 60 * 1000);
sessionManager.setSessionValidationSchedulerEnabled(true);
sessionManager.setSessionIdUrlRewritingEnabled(false);
sessionManager.setSessionDAO(shiroSessionDao);
/** 此注釋代碼 就是將JSESSIONID變成自定義名稱 WEBJSESSIONID
sessionManager.setSessionIdCookieEnabled(true);
SimpleCookie cookie = new SimpleCookie("WEBJSESSIONID");
cookie.setHttpOnly(true);
cookie.setMaxAge(60 * 60 * 1000);
sessionManager.setSessionIdCookie(cookie); **/
return sessionManager;
}