Spring Security入门教程:利用Spring Security实现安全控制

本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。

最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。

最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!下面就开始进入正题,如何从一个萌新一步一步进入网络安全行业。

需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)

学习路线图

其中最为瞩目也是最为基础的就是网络安全学习路线图,这里我给大家分享一份打磨了3个月,已经更新到4.0版本的网络安全学习路线图。

相比起繁琐的文字,还是生动的视频教程更加适合零基础的同学们学习,这里也是整理了一份与上述学习路线一一对应的网络安全视频教程。

网络安全工具箱

当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份我自己整理的网络安全入门工具以及使用教程和实战。

项目实战

最后就是项目实战,这里带来的是SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~

面试题

归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

    <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;
}

}


这个时候我们可以看到,我们只要在浏览器上输入这个地址。就可以返回我们服务里面的内容。那么这就有一个问题,就是说如果我们把这个服务发布在互联网上面,那不是谁都可以调用。所以他就没有一个安全防护的一个环节。



> 
> ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/fa588d7446a843a5904cfc58466314b9.png)
> 
> 
> 


#### 第二步,引入spring security的依赖



    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

我们在项目的pom文件中引入上面的maven代码,记得一定要刷新maven,并且重新启动项目。这样的话,相当于我们的系统就自动引入Spring security的jar包。引入了之后我们就可以直接使用。


可以看到自从引入了这个jar包之后,我们的启动的控制台就会多了一些额外的输出。我们可以看到里面有一个默认生成的密码。我们把它复制下来。



0b34de66-bec1-4a00-aea6-f2cc34e35b28



> 
> ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/733d527a8a194c0ead6e69e9b41ddb0e.png)
> 
> 
> 


现在我们现在在浏览器上输入刚刚一样的内容。



http://localhost:8080/hello


> 
> ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6f9626883d7945cf87fb28ce7562b99a.png)
> 
> 
> 


就会发现我们已经无法直接请求到服务里面返回的内容了,而是直接给我们重定向了一个登录页面的地址。这个登录页面的地址是spring security自己生成的一个默认的登录页面。这个时候我们需要重新输入用户名和密码,用户名默认是`user`。然后密码默认是我们刚刚控制台复制好的密码。


![请添加图片描述](https://img-blog.csdnimg.cn/direct/4bbb45f81f464cc5ab34e2bdb20936f3.gif)


这个时候我们就会发现他又给我们从定向到了hello那个页面这样的话和我们第一步直接访问这个url。所看到的结果是一样的,那么他做了什么事呢?就是在我们访问这个结果之前多了一个登录的页面,这样的话就可以把我们所有系统的接口全部给做一层防护。只有在我们输入用户和密码正确的时候,它才会继续给我们访问系统的接口。


#### 第三步,配置自定义的用户名和密码


大家可以看到我们刚刚控制台生成的密码其实是一个随机的字符串,它是security默认生成的,所以现在我们可以给它配一个默认的用户名和密码。我们可以在配置文件中输入以下的配置给他配置自定义的用户名和密码。



spring.security.user.name=wangfugui
spring.security.user.password=123123



> 


### 给大家的福利


**零基础入门**


对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


![](https://img-blog.csdnimg.cn/img_convert/95608e9062782d28f4f04f821405d99a.png)


同时每个成长路线对应的板块都有配套的视频提供:


![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a91b9e8100834e9291cfcf1695d8cd42.png#pic_center)

因篇幅有限,仅展示部分资料

**需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)**

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化资料的朋友,可以点击这里获取](https://bbs.csdn.net/topics/618540462)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Security 是一个强大且灵活的认证和授权框架,用于保护 Spring Boot 应用程序的安全性。下面是一个简单的入门指南,帮助你开始使用 Spring Security: 1. 添加 Spring Security 依赖:在你的项目的 `pom.xml` 文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> ``` 2. 创建一个 Spring Security 配置类:创建一个类并注解为 `@Configuration`,这个类将用于配置 Spring Security。 ```java @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/public").permitAll() // 允许访问公共资源 .anyRequest().authenticated() // 其他请求需要认证 .and() .formLogin() // 启用表单登录 .and() .logout() // 启用注销功能 .and() .csrf().disable(); // 禁用 CSRF(跨站请求伪造)保护 } } ``` 在上述示例中,我们配置了一些基本的安全规则。可以自定义更多的规则来满足你的需求,比如配置自定义登录页面、添加用户角色等。 3. 添加用户认证:在上述配置类中,可以添加一个内存用户存储来进行简单的用户认证。 ```java @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth .inMemoryAuthentication() .withUser("admin") .password("{noop}password") // 使用 {noop} 前缀表示不加密密码 .roles("ADMIN"); } } ``` 在上述示例中,我们创建了一个用户名为 "admin"、密码为 "password"、角色为 "ADMIN" 的用户。 这只是 Spring Security 的入门指南,你可以进一步学习如何使用数据库存储用户信息、配置角色权限等。希望这些信息对你有所帮助!如果你有更多问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值