springboot shiro登录成功拦截到首页
2018-08-07 11:31
344 查看
1.新建index.html页面
[code]<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.w3.org/1999/xhtml" layout:decorator="fragments/layout"> <head> 首页 </head> <body> </body> </html>
2.新建filter继承FormAuthenticationFilter类
[code]package com.wxbd.wb_mine.filter; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.session.Session; import org.apache.shiro.subject.Subject; import org.apache.shiro.web.filter.authc.FormAuthenticationFilter; import org.apache.shiro.web.util.WebUtils; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; public class MyFormAuthenticationFilter extends FormAuthenticationFilter { @Override //登录拦截到首页 protected boolean onLoginSuccess(AuthenticationToken token, Subject subject, ServletRequest request, ServletResponse response)throws Exception{ String successUrl="/index"; WebUtils.issueRedirect(request,response,successUrl); System.out.println("登录首页拦截"); return false; } }
3.配置拦截器
[code]@Configuration public class ShiroConfig { private static final Logger logger = LoggerFactory.getLogger(ShiroConfig.class); @Bean public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) { System.out.println("ShiroConfiguration.shirFilter()"); ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); shiroFilterFactoryBean.setSecurityManager(securityManager); //自定义拦截器 Map<String, Filter> filters = new LinkedHashMap<String, Filter>(); LogoutFilter logoutFilter = new LogoutFilter(); logoutFilter.setRedirectUrl("/login"); filters.put("logout", logoutFilter); filters.put("authc", new MyFormAuthenticationFilter());//登录成功后拦截至首页+验证码 shiroFilterFactoryBean.setFilters(filters); //拦截器. Map<String, String> filterChainDefinitionMap = new LinkedHashMap<String, String>(); // 配置不会被拦截的链接 顺序判断 filterChainDefinitionMap.put("/AdminLTE/**", "anon"); filterChainDefinitionMap.put("/image/**", "anon"); filterChainDefinitionMap.put("/css/**", "anon"); filterChainDefinitionMap.put("/js/**", "anon"); //配置退出 过滤器,其中的具体的退出代码Shiro已经替我们实现了 filterChainDefinitionMap.put("/logout", "logout");//退出 filterChainDefinitionMap.put("/validatecodeServlet", "anon");//验证码 filterChainDefinitionMap.put("/favicon.ico", "anon"); //<!-- 过滤链定义,从上向下顺序执行,一般将/**放在最为下边 -->:这是一个坑呢,一不小心代码就不好使了; //<!-- authc:所有url都必须认证通过才可以访问; anon:所有url都都可以匿名访问--> filterChainDefinitionMap.put("/**", "authc"); // 如果不设置默认会自动寻找Web工程根目录下的"/login.jsp"页面 shiroFilterFactoryBean.setLoginUrl("/login"); System.out.println("ShiroConfiguration.shirFilter() success"); // 登录成功后要跳转的链接 shiroFilterFactoryBean.setSuccessUrl("/index"); //未授权界面; shiroFilterFactoryBean.setUnauthorizedUrl("/403"); shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap); return shiroFilterFactoryBean; }
end
阅读更多相关文章推荐
- springboot整合shiro-登录认证和权限管理
- Spring Boot 结合shiro做第三方登录验证
- Spring boot +spring mvc+shiro 登录验证demo
- SpringBoot+shiro整合学习之登录认证和权限控制
- SpringBoot+Shiro学习之密码加密和登录失败次数限制示例
- SpringBoot+shiro整合学习之登录认证和权限控制
- springboot整合shiro-登录认证和权限管理
- springboot(十四):springboot整合shiro-登录认证和权限管理
- SpringBoot+Shiro学习之密码加密和登录失败次数限制
- 基于springboot的shiro sso统一登录系统平台搭建遇到的坑
- springboot(十四):springboot整合shiro-登录认证和权限管理
- springboot+shiro+cas实现单点登录之shiro端搭建
- SpringBoot学习:整合shiro(验证码功能和登录次数限制功能)
- SpringBoot/SpringMVC整合Shiro(一):实现登录与注册(MD5加盐加密)
- SpringBoot整合Shiro实现登录认证的方法
- 七、spring boot 1.5.4 集成shiro+cas,实现单点登录和权限控制
- shiro,基于springboot,基于前后端分离,从登录认证到鉴权,从入门到放弃
- Spring Boot 整合 Shiro 进行登录认证
- SpringBoot+shiro整合学习之登录认证和权限控制
- springboot(十四):springboot整合shiro-登录认证和权限管理(转)