Spring Boot+Shiro报UnknownSessionException

第一次访问项目,shiro报no session错误,异常如下:

org.apache.shiro.session.UnknownSessionException: There is no session with id [de08201c-fa60-4619-b5ab-477f05f8c50d]

原因:shiro中的Cookie默认名称是JSESSIONID,而servlet容器也是JSESSIONID,导致冲突,因此需改变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;
  }

你可能感兴趣的:(Spring Boot+Shiro报UnknownSessionException)