国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java - 關(guān)于shiro在spring boot下自動(dòng)登錄的問題?

瀏覽:75日期:2023-12-26 16:39:40

問題描述

我想實(shí)現(xiàn)shiro rememberMe之后,再次訪問后自動(dòng)登錄并把一些用戶信息再存入session

我現(xiàn)在是按照http://blog.csdn.net/Q_AN1314...這篇文章,寫了一個(gè)過濾器,但是在過濾器里獲取subject時(shí)出現(xiàn)錯(cuò)誤

org.apache.shiro.UnavailableSecurityManagerException: No SecurityManager accessible to the calling code, either bound to the org.apache.shiro.util.ThreadContext or as a vm static singleton. This is an invalid application configuration.

這是過濾器

public class AddPrincipalToSessionFilter extends OncePerRequestFilter { @Resource private ManagerService managerService; @Override protected void doFilterInternal(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws ServletException, IOException {Subject subject = SecurityUtils.getSubject();if (subject.isRemembered()) { String principal = (String) subject.getPrincipal(); Manager manager = managerService.queryManager(principal); //將用戶信息存入session ContextHelper.saveLoginUserInfoToSeesion(manager);}filterChain.doFilter(servletRequest, servletResponse); }}

這是shiroFilter

@Bean @Autowired public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) {ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();// 必須設(shè)置 SecurityManagershiroFilterFactoryBean.setSecurityManager(securityManager);Map<String, Filter> filters = shiroFilterFactoryBean.getFilters();//獲取filtersfilters.put('authc', new CustomFormAuthenticationFilter());//驗(yàn)證碼過濾器filters.put('addPrincipal', addPrincipalToSessionFilter());//rememberMe存session過濾器//攔截器.Map<String, String> filterChainDefinitionMap = new LinkedHashMap<>();//配置退出過濾器,其中的具體的退出代碼Shiro已經(jīng)替我們實(shí)現(xiàn)了filterChainDefinitionMap.put('/logout', 'logout');filterChainDefinitionMap.put('/favicon.ico', 'anon');filterChainDefinitionMap.put('/js/**', 'anon');filterChainDefinitionMap.put('/css/**', 'anon');filterChainDefinitionMap.put('/img/**', 'anon');filterChainDefinitionMap.put('/fonts/**', 'anon');filterChainDefinitionMap.put('/icons/**', 'anon');filterChainDefinitionMap.put('/error/**', 'anon');filterChainDefinitionMap.put('/validateCode', 'anon');//配置記住我或認(rèn)證通過可以訪問的地址filterChainDefinitionMap.put('/', 'addPrincipal,user');filterChainDefinitionMap.put('/index', 'addPrincipal,user');filterChainDefinitionMap.put('/index.html', 'addPrincipal,user');//<!-- 過濾鏈定義,從上向下順序執(zhí)行,一般將 /**放在最為下邊//<!-- authc:所有url都必須認(rèn)證通過才可以訪問; anon:所有url都都可以匿名訪問-->filterChainDefinitionMap.put('/**', 'authc');shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);// 如果不設(shè)置默認(rèn)會(huì)自動(dòng)尋找Web工程根目錄下的'/login.jsp'頁(yè)面shiroFilterFactoryBean.setLoginUrl('/login.html');// 登錄成功后要跳轉(zhuǎn)的鏈接shiroFilterFactoryBean.setSuccessUrl('/index.html');// 未授權(quán)要跳轉(zhuǎn)的鏈接shiroFilterFactoryBean.setUnauthorizedUrl('/error/403');return shiroFilterFactoryBean; }}

請(qǐng)問一下大家這是怎么回事?或者大家有什么更好的實(shí)現(xiàn)方法請(qǐng)指教一下

問題解答

回答1:

已解決 1.這個(gè)bean的注入一定要在shiroFilter下面

@Beanpublic AddPrincipalToSessionFilter addPrincipalToSessionFilter(){ return new AddPrincipalToSessionFilter();}

2.user要寫在addPrincipal前面 filterChainDefinitionMap.put('/', 'user,addPrincipal');

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 九九99久久精品国产 | 在线播放成人高清免费视频 | 特级a毛片 | 尹人成人 | www.久久综合 | 久久久久久久久久久视频国内精品视频 | 日韩在线视频线视频免费网站 | 国产精品久久久久久一区二区三区 | 国产成人美女福利在线观看 | 久久九九精品一区二区 | 亚洲国产精品综合久久 | 亚洲国产成人久久综合区 | 91国语对白 | 国产日韩欧美在线观看播放 | 女人让男人桶的小视频 | 欧美成人免费在线观看 | 亚洲精品国产一区二区在线 | 国产三级视频在线 | 毛片免费全部免费观看 | 性配久久久 | 成人在免费视频手机观看网站 | 亚洲精品久久久久久久久久久网站 | 免费观看一级特黄欧美大片 | 国产东北色老头老太性视频 | 最新在线精品国自拍视频 | 国产一区二区三区久久小说 | 最新怡红院全部视频在线 | 亚洲精品系列 | 在线国产区 | 久久网免费| 国产a高清| 亚洲小视频在线观看 | 美女张开腿黄网站免费国产 | 怡红院成人在线 | 日本成人免费在线观看 | 国产欧美一区二区三区在线 | 久久精品爱国产免费久久 | 日本特级淫片免费 | 国产第九页 | 美国免费高清一级毛片 | 久久福利青草精品资源站 |