spring boot配合vue-element-admin实现权限控制,后台跨域,拦截器等的配置

本文通过一个Spring Boot后端配合Vue-element-admin前端的示例,详细介绍了如何配置后台的跨域和拦截器,实现权限控制。在LoginInterceptor.java中设置拦截器,并在MyWebConfigure.java中配置。同时,文章还涵盖了Service层的登录验证接口,Dao层和Controller层的代码实现,以及数据库的相关操作。最后,对整个流程进行了总结。
摘要由CSDN通过智能技术生成


前言

vue-element-admin的修改点这个这是前端部分
本文用一个demo介绍如何获取运用spring-boot配置后台的跨域和拦截器,再配合前端返回获取用户的信息的过程。数据库用JPA进行查询,token用JWT生成。


一、跨域和拦截器的配置

新建文件夹config在问价夹下新建MyWebConfigure.java和LoginInterceptor.java
在LoginInterceptor.java中配置拦截器,再在MyWebConfigure.java中使用。拦截器会拦截excludePathPatterns()以外的所有路径。

1. 跨域的配置

主要代码如下:

@SpringBootConfiguration

public class MyWebConfigurer implements WebMvcConfigurer {
   
    @Override
    public void addCorsMappings(CorsRegistry registry) {
   
        //所有请求都允许跨域,使用这种配置方法就不用在 interceptor 中再配置 header 了
        registry.addMapping("/**")
                .allowCredentials(true)
                .allowedOrigins("http://localhost:9528")
                .allowedOrigins("*")//允许跨域访问的路径
                .allowedMethods("*")
                .allowedHeaders("*")
                .maxAge(3600);
    }
	//使用拦截器
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
   
        registry.addInterceptor(new LoginInterceptor())
                //所有路径都被拦截
                .addPathPatterns("/**")
                //添加不拦截的路径
                .excludePathPatterns("/register","/login");
    }
}

2.拦截器配置

拦截器中配置跨域信息避免拦截器和跨域冲突造成浏览器报跨域错误
preHandle无法调用封装的数据返回类可以在preHandle中用response给前端返回信息


public class LoginInterceptor implements HandlerInterceptor {
   
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
   
        boolean flag;
        //在拦截器中设置允许跨域 避免拦截器和跨域的配置冲突导致跨域报错
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Headers","*");
        response.setHeader("Access-Control-Allow-Methods"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值