测试过程中,发现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跳转相关推荐

  1. ssm+shiro+jsp标签。关键字:shiro的jsp标签,访问拦截。本次ssm和以前的ssm整合中的依赖包不一样。写根据不同用户出现不同的按钮内容就用这shiro标签来解决。Set集合在sql中

    shiro标签只能在jsp和ftl页面文件中使用,无法在html文件中使用 shiro认证后的在jsp页面中的标签: 使用shiro标签就一定要搭配shiro框架使用,即一定要有自定义realm,因为 ...

  2. Shiro总是将我重定向到login.jsp

    今天在用springboot结合shiro写项目的过程发现发送登录请求想跳转到HTML的时候,总是跳往login.jsp 后来在配置文件中找到了答案,shiro默认在没有认证的情况下会自动跳往logi ...

  3. Shiro默认拦截器

    默认拦截器 Shiro 内置了很多默认的拦截器,比如身份验证.授权等相关的.默认拦截器可以参考 org.apache.shiro.web.filter.mgt.DefaultFilter 中的枚举拦截 ...

  4. 基于javaweb+jsp的大学生个人财务记账系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap)

    基于javaweb+jsp的大学生个人财务记账系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap) 运行环境 Java≥8.MySQL≥5.7. ...

  5. 基于javaweb+jsp的甜品店奶茶店管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap Ajax)

    基于javaweb+jsp的甜品店奶茶店管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap Ajax) JavaWeb JavaBean J ...

  6. 基于javaweb+jsp的企业财务记账管理系统(JavaWeb MySQL JSP Bootstrap Servlet SSM SpringBoot)

    基于javaweb+jsp的企业财务记账管理系统(JavaWeb MySQL JSP Bootstrap Servlet SSM SpringBoot) JavaWeb JavaBean JSP MV ...

  7. 基于javaweb+jsp的甜品店奶茶店管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax)

    基于javaweb+jsp的甜品店奶茶店管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Layui Ajax) JavaWeb JavaBean JSP M ...

  8. 关于一加载jsp页面就跳转到servlet获取数据然后再跳回jsp页面的问题

    下面来说我遇到的问题: 上一篇文章中写的是jsp+javabean实现商品分页  浏览,即model1的开发模式,现在要改为 jsp+sevlet+javabean 即model2了  之前在jsp处 ...

  9. java设置首页跳转_SpringBoot设置首页(默认页)跳转功能的实现方案

    先给大家介绍下SpringBoot设置首页(默认页)跳转功能 最近springboot开发需要设置个默认页面,就相当于我访问http://www.back.order.baidu.com要直接跳转到登 ...

最新文章

  1. javascript 异步实现方案
  2. 最强大的GNN出现了!
  3. 高德,百度,Google地图定位偏移以及坐标系转换
  4. rest php,REST介绍与REST在PHP中的应用
  5. SpringSocial业务系统与社交网站的绑定与解绑
  6. 数字图像处理概述PPT学习1
  7. pr预设的卷及内核锐化是什么_PR2018-认识模糊和锐化特效使用
  8. 海思(六)如何在ubuntu20.04上搭建caffe环境
  9. 小程序下找地点、查路线、搜地铁,用这3个插件就够了!
  10. 压在redis身上的三座大山
  11. 攻防演练 第三方供应商梳理
  12. 手把手教你搭建gitlab服务器
  13. 为什么你学了那么多,却没赚到钱?
  14. ctfshow 网络迷踪-狗哥去哪
  15. 【美图】- 2018届校招在线考试
  16. redhat系列镜像下载
  17. android oreo自带壁纸,OREO 8图标包
  18. pandownload 替代品_Pandownload替代品(天翼云盘)
  19. 百度 ASTAR 2010 (二)
  20. 尤里復仇规则修改(0513b)

热门文章

  1. LA4636积木艺术
  2. 【Linux 内核 内存管理】内存管理架构 ② ( 用户空间内存管理 | malloc | ptmalloc | 内核空间内存管理 | sys_brk | sys_mmap | sys_munmap)
  3. 【错误记录】Manifest 清单文件报错 ( ..required to specify an explicit value for `android:exported` when the .. )
  4. 【Groovy】MOP 元对象协议与元编程 ( 使用 Groovy 元编程进行函数拦截 | 重写 MetaClass#invokeMethod 方法实现函数拦截 | 实现函数调用转发 )
  5. java判断时间为上午,中午,下午,晚上,凌晨
  6. Java并发编程--6.Exchanger线程间交换数据
  7. 给自己新申请的阿里云服务器ECS免费搭建WDCP环境
  8. 一步一步学习Bootstrap系列--表单布局
  9. iOS开发——你真的会用SDWebImage?
  10. Maven实战系列文章目录