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…

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 在包括多模态问答、推理、交互在内的多个领…

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

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

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

注意&#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;只是在表达一种…

非关系型数据库——三万字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实现…

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

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

算法打卡day36|动态规划篇04| 01背包理论基础、416. 分割等和子集

目录 01背包理论基础 01背包问题描述 01背包解法 二维数组 一维数组 算法题 Leetcode 416. 分割等和子集 个人思路 解法 动态规划 01背包理论基础 不同的背包种类&#xff0c;虽然有那么多中南背包&#xff0c;但其中01背包和完全背包是重中之重&#xff1b; 01背包问…

Python + Appium 自动化操作微信入门看这一篇就够了

Appium 是一个开源的自动化测试工具&#xff0c;支持 Android、iOS 平台上的原生应用&#xff0c;支持 Java、Python、PHP 等多种语言。 Appium 封装了 Selenium&#xff0c;能够为用户提供所有常见的 JSON 格式的 Selenium 命令以及额外的移动设备相关的控制命令&#xff0c;…

LABVIEW--正弦+高斯噪声信号及滤波

前面板信号 后面板 LABVIEW源程序链接&#xff1a;https://pan.baidu.com/s/11B-75i4fHZwWQyjxn9yCyQ?pwd7tfj 提取码&#xff1a;7tfj

中文地址分词器源码阅读(jiedi)

文章目录 structure.p文件pd.read_excelenumerate思维导图核心源码讲解jiedi.pytrain.py 总结 structure 点击左边的Structure按钮就如Structure界面。从Structure我们可以看出当前代码文件中有多少个全局变量、函数、类以及类中有多少个成员变量和成员函数。 其中V图标表示全…

AI普及时代,【AI书童】助你提升自我竞争力

AI运营官招募令&#xff01;&#xff01;&#xff01; 【AI书童】运营官 未来智慧人工智能 2024-03-26 12:00 浙江 微信公众号&#xff1a;未来智慧人工智能 助力个人和企业在人工智能时代持续成功 随着ChatGPT、GPT-4和Sora等创新技术的推出&#xff0c;人工智能在多模态领…

《梦幻西游》迎来史上最大翻车,老玩家们为何纷纷揭竿而起?

因一次调整&#xff0c;21岁的《梦幻西游》迎来了自己有史以来最大的一波节奏。 玩家在微博上炮轰官方&#xff0c;称&#xff1a;“游戏借着打击工作室牟利的称号&#xff0c;砍副本活动产出&#xff0c;然后自己口袋无限卖”&#xff0c;要求改善游戏现状。 从3月29日起&am…

小黑逆向爬虫探索与成长之路:小黑独立破解毛毛租数据加密与解密

前言 有道和招标网的加密入口定位在前面两期做了详细的介绍&#xff0c;本小结将通过简单的关键词搜索定位到加密与解密入口 数据接口寻找与请求 根据响应数据长度&#xff0c;确定数据接口&#xff0c;发现传入的参数需要加密&#xff0c;响应的结果需要解密&#xff0c;后…

nodejs应用程序不同部署环境下的差异配置方案

一、背景 nodejs应用程序&#xff0c;不同于java语言使用分布式配置&#xff0c;当部署于不同的环境里&#xff0c;因为环境的差异&#xff0c;配置项的值也不尽相同。 最常见的差异就是数据库的连接信息&#xff0c;而代码是一份&#xff0c;不能把生产环境的信息暴露在非生产…