Spring Security——09,解决跨域

解决跨域

    • 一、SpringBoot配置
    • 二、配置SpringSecurity
    • 三、修改端口
    • 四、修改vue项目
      • 4.1 拿到token
      • 4.2 前端存储token
      • 4.3 前端请求头携带token
    • 五、测试
      • 5.1 认证测试
      • 5.2 授权测试
    • 一键三连有没有捏~~

浏览器出于安全的考虑,使用 XMLHttpRequest对象发起 HTTP请求时必须遵守同源策略,否则就是跨

域的HTTP请求,默认情况下是被禁止的。 同源策略要求源相同才能正常进行通信,即协议、域名、端口号都完全一致。

前后端分离项目,前端项目和后端项目一般都不是同源的,所以肯定会存在跨域请求的问题。

所以我们就要处理一下,让前端能进行跨域请求。

一、SpringBoot配置

配置运行跨域请求

在这里插入图片描述

二、配置SpringSecurity

②开启SpringSecurity的跨域访问

由于我们的资源都会收到SpringSecurity的保护,所以想要跨域访问还要让SpringSecurity运行跨域访问。

在这里插入图片描述

三、修改端口

在这里插入图片描述

四、修改vue项目

vue项目:

阿里云盘:
文件太多了,百度网盘传不上,用阿里云盘,嗯。2万多个文件
https://www.alipan.com/t/la1A8NRdoGJjipuJwrZU

用postman是肯定不存在跨域问题的。因为它不是浏览器,所以我们要找一个前端的项目,就随便找了一个vue工程。修改一下vue项目。

4.1 拿到token

创建一个登录页面

在这里插入图片描述代码如下:

<template><el-form style="width: 20%" :model="ruleForm" ref="ruleForm" label-width="100px" class="demo-ruleForm"><el-form-item label="账号" prop="userName"><el-input v-model="ruleForm.userName"></el-input></el-form-item><el-form-item label="密码" prop="password"><el-input v-model="ruleForm.password"></el-input></el-form-item><el-form-item><el-button type="primary" @click="submitForm('ruleForm')">提交</el-button></el-form-item></el-form>
</template><script>export default {data() {return {ruleForm: {userName: '',password: ''}};},methods: {//这个是提交方法submitForm(formName) {this.$refs[formName].validate((valid) => {if (valid) {axios.post('http://localhost:8888/user/login',this.ruleForm).then(res=>{console.log(res.data.data.token);if(res.data.code == '200'){this.$alert(this.ruleForm.userName+'账号登录成功!', '消息', {confirmButtonText: '确定',})}})} else {return false;}});}}}
</script><style scoped></style>

路由的配置就直接略过了,不是重点。。。。。

运行前端vue项目:

在这里插入图片描述
然后测试一下,登录成功,解决跨域请求,拿到token

在这里插入图片描述

4.2 前端存储token

修改一下登录页面,认证登录成功之后,把返回的token接收,存入localStorage

在这里插入图片描述
测试一下:没有问题,本地存储了token

在这里插入图片描述

4.3 前端请求头携带token

先创建一个hello页面

在这里插入图片描述代码如下:

<template><el-form style="width: 20%" label-width="100px" class="demo-ruleForm"><el-form-item><el-button type="primary" @click="submitForm()">测试hallo接口</el-button></el-form-item></el-form>
</template><script>export default {methods: {//这个是提交方法submitForm() {axios.post('http://localhost:8888/hello',this.ruleForm).then(res=>{})}}}
</script><style scoped></style>

启动项目,页面测试一下:

认证失败,因为请求头没有携带任何token

在这里插入图片描述
创建一个utils文件夹,在utils下创建request.js

在这里插入图片描述
在main.js进行全局引入

在这里插入图片描述

修改hello接口,只需要写一个hello就行了,不需要写全部的接口地址

在这里插入图片描述

五、测试

5.1 认证测试

填一个错误的密码,认证失败

在这里插入图片描述
填入一个正确的密码,认证成功

在这里插入图片描述

5.2 授权测试

然后,我们测试一下,请求头已经携带了token了

在这里插入图片描述

然后看一下,响应,都没有问题,OK,这个账号是有这个权限的。

在这里插入图片描述

我们把权限改了

在这里插入图片描述

再进行一下测试:当前账号已经没有权限了。

在这里插入图片描述

一键三连有没有捏~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/798593.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day 74 js

js脚本 JS的作用&#xff1a; 描述显示的内容&#xff08;HTML&#xff09;修饰 HTML 标签&#xff08;CSS&#xff09;设置 HTML 标签的动作&#xff08;JS&#xff09;JS特点&#xff1a;基于对象的编程语言&#xff0c;通过浏览器解释执行作用&#xff1a;表单验证、改变标签…

使用阿里云服务器可以做什么?太多了

阿里云服务器可以干嘛&#xff1f;能干啥你还不知道么&#xff01;简单来讲可用来搭建网站、个人博客、企业官网、论坛、电子商务、AI、LLM大语言模型、测试环境等&#xff0c;阿里云百科aliyunbaike.com整理阿里云服务器的用途&#xff1a; 阿里云服务器活动 aliyunbaike.com…

LeetCode-热题100:763. 划分字母区间

题目描述 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段&#xff0c;同一字母最多出现在一个片段中。 注意&#xff0c;划分结果需要满足&#xff1a;将所有划分结果按顺序连接&#xff0c;得到的字符串仍然是 s 。 返回一个表示每个字符串片段的长度的列表。…

AcWing 4. 多重背包问题 I

解题思路 相关思路 import java.util.Scanner; public class Main {public static void main(String[] args){Scanner scanner new Scanner(System.in);int N scanner.nextInt();int V scanner.nextInt();int v[] new int[N1];int w[] new int[N1];int s[] new int[N1];…

揭秘AI幻觉:GPT-4V存在视觉编码漏洞,清华联合NUS提出LLaVA-UHD

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 GPT-4V 的推出引爆了多模态大模型的研究。GPT-4V 在包括多模态问答、推理、交互在内的多个领…

capter1:GPU 硬件与 CUDA 程序开发工具

GPU 硬件与 CUDA 程序开发工具 参考书籍&#xff1a;CUDA 编程 樊哲勇 代码地址&#xff1a;https://github.com/QINZHAOYU/CudaSteps GPU 硬件 在由 CPU 和 GPU 构成的异构计算平台中&#xff0c;通常将起控制作用的 CPU 称为 主机&#xff08;host&#xff09;&#xff0c;…

二. CUDA编程入门-双线性插值计算

目录 前言0. 简述1. 执行一下我们的第十个CUDA程序2. Bilinear interpolation3. 代码分析总结参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》&#xff0c;链接。记录下个人学习笔记&#xff0c;仅供自己参考 Note&#xff1a;关于 CUDA 加速双线程插值的内容博主…

Linux下I2C设备驱动:i2c_driver 的注册示例代码

一. 简介 前面学习了 Linux下 I2C驱动框架分为&#xff1a;I2C总线驱动与I2C设备驱动两个部分。我们主要重点学习 I2C设备驱动&#xff0c;前一篇文章学习了I2C设备驱动相关的结构体与设备驱动注册与删除。文章如下&#xff1a; Linux下I2C驱动实验&#xff1a;I2C 设备驱动…

对象存储服务MinIO安装使用

对象存储服务MinIO安装使用 MinIO简介 MinIO基于Apache License v2.0开源协议的对象存储服务&#xff0c;可以做为云存储的解决方案用来保存海量的图片&#xff0c;视频&#xff0c;文档。由于采用Golang实现&#xff0c;服务端可以工作在Windows,Linux, OS X和FreeBSD上。配置…

爬虫逆向非对称加密和对称加密案例

注意&#xff01;&#xff01;&#xff01;&#xff01;某XX网站逆向实例仅作为学习案例&#xff0c;禁止其他个人以及团体做谋利用途&#xff01;&#xff01;&#xff01; 案例--aHR0cHM6Ly9jcmVkaXQuaGxqLmdvdi5jbi94eWdzL3l6d2ZzeHF5bWQv 第一步&#xff1a;分析页面、请求…

CTF 之Zhuanxv

拿到题目进行目录遍历发现有一个/list文件 打开/list文件&#xff0c;发现是一个登录界面 尝试过爆破&#xff0c;毫无疑问不可能成功。 刷新页面&#xff0c;抓包&#xff0c;然后放一个包&#xff0c;发现又发了一个请求。 GET /loadimage?fileNameweb_login_bg.jpg HTTP/…

1995-2021年各省分品种能源产量和消费量数据

1995-2021年各省分品种能源产量和消费量数据 1、时间&#xff1a;1995-2021年 2、来源&#xff1a;能源统计年鉴、各省年鉴 3、指标&#xff1a;能源消费总量、煤炭消费量、焦炭消费量、原油消费量、汽油消费量、煤油消费量、柴油消费量、燃料油消费量、天然气消费量、电力消…

不开玩笑,你应该像「搬砖」一样写代码!斯坦福大学研究如是说

由于程序员不可避免要进行很多重复性的工作&#xff0c;并且工作强度很高&#xff0c;导致有一种自嘲的说法出现&#xff1a;程序员们自称自己每天都在搬砖&#xff08;实际上很多职场人都这么自嘲&#xff09;。我相信当我们说工作像「搬砖」的时候&#xff0c;只是在表达一种…

JSX 入门:React 开发者的必备技能指南

JSX 是 React 的一种语法扩展&#xff0c;用于描述 UI 组件的外观。在 React 中&#xff0c;JSX 可以与 JavaScript 一起使用&#xff0c;帮助您在应用程序中创建动态和可重用的组件。以下是 JSX 的语法、使用技巧和注意事项&#xff0c;以及一些示例代码。 JSX 基础语法 JSX…

非关系型数据库——三万字Redis数据库详解

目录 前言 一、Redis概述 1.主要特点 2.Redis优缺点 3.Redis为什么这么快 4.Redis那么快&#xff0c;为什么不用它做主数据库&#xff0c;只用它做缓存 5.线程模型 5.1单线程架构 5.2多线程IO处理&#xff08;Redis 6及以上&#xff09; 5.3线程模型的优化 6.作用 …

回归预测 | Matlab实现WOA-GPR鲸鱼算法优化高斯过程回归多变量回归预测

回归预测 | Matlab实现WOA-GPR鲸鱼算法优化高斯过程回归多变量回归预测 目录 回归预测 | Matlab实现WOA-GPR鲸鱼算法优化高斯过程回归多变量回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现WOA-GPR鲸鱼算法优化高斯过程回归多变量回归预测 1.Matlab实现…

系统设计取舍问题

在需求设计过程中&#xff0c;常常面临着取舍问题。由于资源和时间的限制&#xff0c;不可能满足所有的需求&#xff0c;因此需要进行取舍。以下是一些常见的需求设计取舍问题和应对方法&#xff1a; 优先级&#xff1a;对于不同的需求&#xff0c;可以根据其重要性和紧急程度来…

蓝桥杯考前复习二

1.快速幂 public static long qmi(long a, long b, long p) {long r 1;while (b ! 0) {if ((b & 1) 1) {r (r * a) % p;}b >> 1;a a * a % p;}return r;} 2.Java日期类 日期问题暂更 3.日期问题模板 考前更新 4.状态机DP 1.松散子序列 - 蓝桥云课 (lanqia…

LOOP AT内表循环事件块 程序实例

REPORT zdemo_0006. *声明一个结构 DATA: BEGIN OF gs_alv, va1 TYPE char2, va2 TYPE char2, va3 TYPE char2, va4 TYPE char2, END OF gs_alv. *声明内表 DATA: gt_alv LIKE TABLE OF gs_alv. *赋值宏 DEFINE append_va. gs_alv-va1…

吹爆!遥感高光谱分类(Python)

目录 一、数据集下载 二、安装包 三、数据处理 四、模型训练 五、模型推理 六、踩坑记录 一、数据集下载 Hyperspectral Remote Sensing Scenes - Grupo de Inteligencia Computacional (GIC) (ehu.eus) Installing SPy — Spectral Python 0.21 documentation 二、安装…