在现今这个数码大展拳脚的时代,安全问题无疑是咱们这些搞软件开发的人需要谨慎应对的一块烫手山芋,无论是那些大型企业应用,还是那种小打小闹的个人项目,对我们宝贵的数据和服务的保护都显得尤为关键。
试想一下,若是没有咱这神奇的Spring Security保驾护航,那我们的每一个接口岂不成为了互联网世界里的羔羊,任由他人肆意挑战?这种情况想想就让人心惊胆战啊!因此,我们会想到在接口被调用时,能不能让咱的后端猜出是哪个家伙在捣鬼呢?这样就能有效防止别人胡乱开关我们的接口了。除了这个痛点之外,还有个问题就是如何判断是哪位用户触发的操作呢?这可真是给咱们带来了不小的困扰。这时,Spring Security横空出世,成了解决这些难题的救星。
作为Spring大家族中的一员猛将,Spring Security为我们提供了一整套周全且灵活多变的安全防御体系,让应用的安全防线固若金汤。本文中,我们就一起来探讨如何运用Spring Security来保卫我们的应用吧。从Spring Security的基础概念讲起,逐步介绍如何搭建出扎实的横向跨越式的Spring Security应用;接着深入讲解配置Spring Security的细节,以满足咱们接口防御和数据防护的各种需求。
文章目录
搭建Spring Security环境
第一步,创建spring boot应用
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
我们首先创建一个springboot的应用,我们引入了一个web包这样的话,我们就可以通过HTTP的方式调用我们的接口。
里面我们可以给他新建一个实体类和一个接口类。用来验证我们的最基础的接口。
User实体类
public class User {
private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
BasicController接口类
package com.masiyi.springsecuritydemo.demos.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class BasicController {
// http://127.0.0.1:8080/hello?name=lisi
@RequestMapping("/hello")
@ResponseBody
public String hello(@RequestParam(name = "name", defaultValue = "unknown user") String name) {
return "Hello " + name;
}
// http://127.0.0.1:8080/user
@RequestMapping("/user")
@ResponseBody
public User user() {
User user = new User();
user.setName("theonefx");
user.setAge(666);
return user;
}
}
这个时候我们可以看到,我们只要在浏览器上输入这个地址。就可以返回我们服务里面的内容。那么这就有一个问题,就是说如果我们把这个服务发布在互联网上面,那不是谁都可以调用。所以他就没有一个安全防护的一个环节。
第二步,引入spring security的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
我们在项目的pom文件中引入上面的maven代码,记得一定要刷新maven,并且重新启动项目。这样的话,相当于我们的系统就自动引入Spring security的jar包。引入了之后我们就可以直接使用。
可以看到自从引入了这个jar包之后,我们的启动的控制台就会多了一些额外的输出。我们可以看到里面有一个默认生成的密码。我们把它复制下来。
### 最后
即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!**今天就给大家分享一个Github上全面的Java面试题大全,就是这份面试大全助我拿下大厂Offer,月薪提至30K!**
**我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为金三银四做准备!**
一共有20个知识点专题,分别是:
#### Dubbo面试专题
![](https://img-blog.csdnimg.cn/img_convert/6ec6ddcea6e25b6fb10ffdca8e980665.webp?x-oss-process=image/format,png)
**JVM面试专题**
![这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南](https://img-blog.csdnimg.cn/img_convert/30ab056ac8e7694836a2c78199cdc91e.webp?x-oss-process=image/format,png)
**Java并发面试专题**
![这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南](https://img-blog.csdnimg.cn/img_convert/8aefda4fb699b3cab73ffeb5f5f093aa.webp?x-oss-process=image/format,png)
**Kafka面试专题**
![这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南](https://img-blog.csdnimg.cn/img_convert/7f9d42f4aa1e4862d5499417d5fb91e0.webp?x-oss-process=image/format,png)
**MongDB面试专题**
![这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南](https://img-blog.csdnimg.cn/img_convert/c21192817f432283a9d3eb5a673b7bc8.webp?x-oss-process=image/format,png)
**MyBatis面试专题**
![这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南](https://img-blog.csdnimg.cn/img_convert/5d90259b3517ef167f22ac555a78f0d4.webp?x-oss-process=image/format,png)
**MySQL面试专题**
![这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南](https://img-blog.csdnimg.cn/img_convert/c3e58130794e288c3a710dd9c3b4d1dd.webp?x-oss-process=image/format,png)
**Netty面试专题**
![这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南](https://img-blog.csdnimg.cn/img_convert/4833da86f61992a4f33627dcb19bc2c0.webp?x-oss-process=image/format,png)
**RabbitMQ面试专题**
![这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南](https://img-blog.csdnimg.cn/img_convert/abe03bab46af7bc24c269a0da7cde506.webp?x-oss-process=image/format,png)
**Redis面试专题**
![这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南](https://img-blog.csdnimg.cn/img_convert/45f8c0a913d3bf1b180644f7a6983e37.webp?x-oss-process=image/format,png)
**Spring Cloud面试专题**
![这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南](https://img-blog.csdnimg.cn/img_convert/b1e1f0a8c84bd3056fa44f101e98ba8f.webp?x-oss-process=image/format,png)
**SpringBoot面试专题**
![这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南](https://img-blog.csdnimg.cn/img_convert/17b46a2a98aba802259c2a863be561e3.webp?x-oss-process=image/format,png)
**zookeeper面试专题**
![这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南](https://img-blog.csdnimg.cn/img_convert/a2f38d834de927c3c6096f831a3e12af.webp?x-oss-process=image/format,png)
**常见面试算法题汇总专题**
![这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南](https://img-blog.csdnimg.cn/img_convert/4b1ad411f63ba819ad3a564ac33c34c9.webp?x-oss-process=image/format,png)
**计算机网络基础专题**
![这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南](https://img-blog.csdnimg.cn/img_convert/a2b9fad6f4feacf142a4623b647174cc.webp?x-oss-process=image/format,png)
**设计模式专题**
![这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南](https://img-blog.csdnimg.cn/img_convert/2c227adefe090334ede34d0aee4f6186.webp?x-oss-process=image/format,png)
.(img-dR46uSSP-1716217169031)]
**常见面试算法题汇总专题**
[外链图片转存中...(img-WO0UpHFM-1716217169032)]
**计算机网络基础专题**
[外链图片转存中...(img-r3QCO6uR-1716217169032)]
**设计模式专题**
[外链图片转存中...(img-cvb6glFm-1716217169032)]