springBoot前后端分离项目中shiro的302跳转

Shiro权限验证优化

     项目是使用的springboot ,使用的shiro做的用户鉴权。在前端请求时当用户信息失效,session失效的时候,shiro会重定向到配置的login.jsp 页面,或者是自己配置的logUrl。

   因是前后端分离项目,与静态资源文件分离,固重定向后,接着会404。经过查找网上配置资料,发现302原因是

FormAuthenticationFilter 中 onAccessDenied 方法做了相应处理。那知道问题所在,就可以有解决方了。重写 onAccessDenied 方法,针对自己的业务做相应处理,然后在加载过滤器配置的时候添加到配置中。

参考:https://blog.youkuaiyun.com/callmesong/article/details/78826696

 

以下是代码

 

1.增加类ShiroFormAuthenticationFilter 重新方法

package com.oilpay.wallet.shiro;

import com.alibaba.fastjson.JSONObject;
import com.oilpay.wallet.interceptor.TokenInterceptor;
import org.apache.shiro.web.filter.authc.FormAuthenticationFilter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation
<think>好的,我需要帮用户找到一个基于Spring Boot、Maven、Shiro和MySQL的前后端分离示例项目的源码。根据用户提供的引用内容,首先查看引用[2],里面提到了一个Spring Boot + Shiro的权限管理项目项目地址是https://gitcode.com/gh_mirrors/spri/springboot-shiro。这个项目可能符合用户的需求,因为它提到了代码干净、配置简单,并且有详细的流程说明。不过需要确认该项目是否前后端分离,可能还需要进一步查看项目结构。 接着,用户提到前后端分离,所以可能需要后端提供API接口,前端使用如Vue或React的框架。引用[5]中的代码片段是关于权限处理的,说明该项目确实集成了Shiro进行权限控制,符合用户的需求中的Shiro部分。另外,引用[4]提到MyBatis的自动配置,可能项目中使用了MyBatis作为ORM框架,而用户需要的是MySQL,这通常是搭配使用的,所以这一点也符合。 需要确认该项目是否使用了Maven,根据引用[2]中的描述,项目是基于Maven的,所以构建工具没问题。前后端分离的结构通常会有后端提供RESTful API,前端独立部署,因此需要检查项目是否包含前端部分或者是否只专注于后端。如果该项目只有后端,用户可能需要另外找一个前端项目配合使用,或者寻找一个全栈示例。 此外,用户可能需要项目结构说明,引用[2]中提到了项目目录结构和介绍,这对用户了解项目布局很有帮助。同时,引用[5]中的权限处理类展示了如何处理未授权的情况,这对于实现权限管理功能是一个很好的参考。 总结一下,引用[2]中的项目可能是一个合适的起点,但需要确认其是否前后端分离。如果该项目前后端分离的,可以直接推荐。否则,可能需要寻找其他项目或补充说明如何将后端与前端框架结合。另外,可能需要指导用户如何配置MySQL数据库,因为引用中没有明确提到数据库配置,但Shiro通常需要与数据库交互进行权限管理。</think>### Spring Boot + Shiro 前后端分离项目推荐 根据引用内容,推荐以下符合要求的开源项目: #### 1. **springboot-shiro 项目** - **技术栈**:Spring Boot 2.x + Shiro + Maven + MySQL + MyBatis - **特点**: 1. 清晰的权限管理模块,包含角色、菜单、接口等权限控制[^2][^5]。 2. 提供`UserAuthAccessDeniedHandler`类处理未授权请求,返回JSON格式数据,适合前后端分离场景[^5]。 3. 使用Maven管理依赖,集成MyBatis操作数据库[^4]。 - **项目地址**: https://gitcode.com/gh_mirrors/spri/springboot-shiro #### 2. **前后端分离实现建议** - **后端配置**: 1. 在Spring Boot中配置`@RestController`提供RESTful API。 2. 使用Shiro的注解(如`@RequiresRoles`)控制接口权限[^5]。 3. 通过`application.yml`配置MySQL数据源: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/db_name?useSSL=false username: root password: 123456 ``` - **前端对接**: 使用Vue/React发送AJAX请求,拦截401/403状态码并跳转登录页。 #### 3. **快速启动步骤** 1. 克隆项目: ```bash git clone https://gitcode.com/gh_mirrors/spri/springboot-shiro.git ``` 2. 导入IDEA/Eclipse,用Maven下载依赖[^4]。 3. 创建MySQL数据库,执行项目中的SQL脚本初始化表。 4. 修改`application.yml`中的数据库连接信息。 5. 启动后端服务,使用Postman测试接口
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值