ssm jsp跳转jsp_去掉Shiro默认login.jsp跳转
测试过程中,发现shiro在认证不通过时会自动跳转到login.jsp页面,然后login.jsp界面找不到,会出现404的报错,但是本项目是前后端分离的项目,不需要shiro帮我们跳转啊!
还好shiro的权限验证是基于过滤器实现的
解决如下:
1 增加过滤器 LoginFilter
/** * shiro登录过滤器 * 默认情况下 如果shiro验证失败 会进入到login.jsp的路径 但是目前不需要这么跳转 */public class LoginFilter extends UserFilter { /** * 这个方法用于处理未登录时页面重定向的逻辑 * 因此,只要进入了这个方法,就意味着登录失效了 * 我们只需要在这个方法里,给前端返回一个登录失效的状态码即可 * @param request * @param response * @throws IOException */ @Override protected void redirectToLogin(ServletRequest request, ServletResponse response) throws IOException { response.setContentType("application/json; charset=utf-8"); ObjectMapper mapper = new ObjectMapper(); // 自定义返回内容 // 本处返回一个自己定义的ResultVo对象 response.getWriter().write(mapper.writeValueAsString(new ResultVo(AppCode.ERROR,"无权访问", AppConstant.NO))); }}
2 设置ShiroConfig中创建ShiroFilterFactoryBean的Bean
需要说明一下ShiroFilterFactoryBean中Map中String的含义
authc(authentication)拦截器表示需要身份认证通过后才能访问
anon(anonymous)拦截器表示匿名访问(即不需要登录即可访问)
[urls] 部分的配置,其格式是:“url=拦截器[参数],拦截器[参数]”;
代码如下 :
//Filter工厂,设置对应的过滤条件和跳转条件@Beanpublic ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) { ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); shiroFilterFactoryBean.setSecurityManager(securityManager); //过滤器 Map filters = shiroFilterFactoryBean.getFilters(); filters.put("authc", new LoginFilter()); //权限 Mapmap = new HashMap<>(); //放开一部分权限 //文档的权限 map.put("/doc.html","anon"); map.put("/swagger-resources/**", "anon"); map.put("/webjars/**", "anon"); map.put("/v2/api-docs", "anon"); map.put("/swagger-ui.html", "anon"); //登录/注销的权限 map.put("/employee/login", "anon"); map.put("/employee/logout", "anon"); //登出 // map.put("/logout", "logout"); //对所有用户认证 map.put("/**", "authc"); //登录 //shiroFilterFactoryBean.setLoginUrl("/login"); //首页 //shiroFilterFactoryBean.setSuccessUrl("/index"); //错误页面,认证不通过跳转 //shiroFilterFactoryBean.setUnauthorizedUrl("/error"); shiroFilterFactoryBean.setFilterChainDefinitionMap(map); return shiroFilterFactoryBean;}
ssm jsp跳转jsp_去掉Shiro默认login.jsp跳转相关推荐
- ssm+shiro+jsp标签。关键字:shiro的jsp标签,访问拦截。本次ssm和以前的ssm整合中的依赖包不一样。写根据不同用户出现不同的按钮内容就用这shiro标签来解决。Set集合在sql中
shiro标签只能在jsp和ftl页面文件中使用,无法在html文件中使用 shiro认证后的在jsp页面中的标签: 使用shiro标签就一定要搭配shiro框架使用,即一定要有自定义realm,因为 ...
- Shiro总是将我重定向到login.jsp
今天在用springboot结合shiro写项目的过程发现发送登录请求想跳转到HTML的时候,总是跳往login.jsp 后来在配置文件中找到了答案,shiro默认在没有认证的情况下会自动跳往logi ...
- Shiro默认拦截器
默认拦截器 Shiro 内置了很多默认的拦截器,比如身份验证.授权等相关的.默认拦截器可以参考 org.apache.shiro.web.filter.mgt.DefaultFilter 中的枚举拦截 ...
- 基于javaweb+jsp的大学生个人财务记账系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap)
基于javaweb+jsp的大学生个人财务记账系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap) 运行环境 Java≥8.MySQL≥5.7. ...
- 基于javaweb+jsp的甜品店奶茶店管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap Ajax)
基于javaweb+jsp的甜品店奶茶店管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap Ajax) JavaWeb JavaBean J ...
- 基于javaweb+jsp的企业财务记账管理系统(JavaWeb MySQL JSP Bootstrap Servlet SSM SpringBoot)
基于javaweb+jsp的企业财务记账管理系统(JavaWeb MySQL JSP Bootstrap Servlet SSM SpringBoot) JavaWeb JavaBean JSP MV ...
- 基于javaweb+jsp的甜品店奶茶店管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax)
基于javaweb+jsp的甜品店奶茶店管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax) JavaWeb JavaBean JSP M ...
- 关于一加载jsp页面就跳转到servlet获取数据然后再跳回jsp页面的问题
下面来说我遇到的问题: 上一篇文章中写的是jsp+javabean实现商品分页 浏览,即model1的开发模式,现在要改为 jsp+sevlet+javabean 即model2了 之前在jsp处 ...
- java设置首页跳转_SpringBoot设置首页(默认页)跳转功能的实现方案
先给大家介绍下SpringBoot设置首页(默认页)跳转功能 最近springboot开发需要设置个默认页面,就相当于我访问http://www.back.order.baidu.com要直接跳转到登 ...
最新文章
- javascript 异步实现方案
- 最强大的GNN出现了!
- 高德,百度,Google地图定位偏移以及坐标系转换
- rest php,REST介绍与REST在PHP中的应用
- SpringSocial业务系统与社交网站的绑定与解绑
- 数字图像处理概述PPT学习1
- pr预设的卷及内核锐化是什么_PR2018-认识模糊和锐化特效使用
- 海思(六)如何在ubuntu20.04上搭建caffe环境
- 小程序下找地点、查路线、搜地铁,用这3个插件就够了!
- 压在redis身上的三座大山
- 攻防演练 第三方供应商梳理
- 手把手教你搭建gitlab服务器
- 为什么你学了那么多,却没赚到钱?
- ctfshow 网络迷踪-狗哥去哪
- 【美图】- 2018届校招在线考试
- redhat系列镜像下载
- android oreo自带壁纸,OREO 8图标包
- pandownload 替代品_Pandownload替代品(天翼云盘)
- 百度 ASTAR 2010 (二)
- 尤里復仇规则修改(0513b)
热门文章
- LA4636积木艺术
- 【Linux 内核 内存管理】内存管理架构 ② ( 用户空间内存管理 | malloc | ptmalloc | 内核空间内存管理 | sys_brk | sys_mmap | sys_munmap)
- 【错误记录】Manifest 清单文件报错 ( ..required to specify an explicit value for `android:exported` when the .. )
- 【Groovy】MOP 元对象协议与元编程 ( 使用 Groovy 元编程进行函数拦截 | 重写 MetaClass#invokeMethod 方法实现函数拦截 | 实现函数调用转发 )
- java判断时间为上午,中午,下午,晚上,凌晨
- Java并发编程--6.Exchanger线程间交换数据
- 给自己新申请的阿里云服务器ECS免费搭建WDCP环境
- 一步一步学习Bootstrap系列--表单布局
- iOS开发——你真的会用SDWebImage?
- Maven实战系列文章目录