最近发现一个问题首页登录的时候会在地址栏首页地址上拼接;jsessionid,
清除缓存的时候也会出现;项目用的是springboot+shiro,解决方法是
只需要在我们写的shiro配置类中加上 sessionManager.setSessionIdUrlRewritingEnabled(false);
shiro配置类:
package com.project1.config;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.LinkedHashMap;
import java.util.Map;
@Configuration
public class ShiroConfig {
//创建ShiroFilterFactoryBean
@Bean
public ShiroFilterFactoryBean shiroFilterFactoryBean(@Qualifier("securityManager") DefaultWebSecurityManager securityManager) {
ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();
/**
* 准备拦截器的拦截路径
* 需要保持拦截顺序,所以用linkedHashMap,一般将/**放在最下面
*/
Map<String, String> filterMap = new LinkedHashMap<>();
filterMap.put("/logout", "logout");
//authc:所有url都必须认证通过才可以访问; anon:所有url都都可以匿名访问
//filterMap.put("/**", "authc");//所有链接拦截
//设置安全管理器
bean.setSecurityManager(securityManager);
//首页不登陆进行拦截
filterMap.put("/indexx","authc");
//需要登录的页面
bean.setLoginUrl("/login1");
bean.setSuccessUrl("/indexx");
bean.setFilterChainDefinitionMap(filterMap);
return bean;
}
//创建DefaultWebSecurityManager
@Bean(name = "securityManager")
public DefaultWebSecurityManager defaultWebSecurityManager(@Qualifier("myShiroRealm") MyShiroRealm myShiroRealm,@Qualifier("sessionManager") DefaultWebSessionManager sessionManager) {
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
//关联realmam
securityManager.setRealm(myShiroRealm);
securityManager.setSessionManager(sessionManager);
return securityManager;
}
//创建realman需要自定义
@Bean
public MyShiroRealm myShiroRealm() {
return new MyShiroRealm();
}
//创建session过期时间
@Bean(name="sessionManager")
public DefaultWebSessionManager defaultWebSessionManager(){
DefaultWebSessionManager sessionManager=new DefaultWebSessionManager();
// 设置session过时时间3600s
sessionManager.setGlobalSessionTimeout(3600000L);
sessionManager.setSessionIdUrlRewritingEnabled(false);
return sessionManager;
}
}