面试不要在说不熟悉spring security了,一个demo让你使劲忽悠面试官

简单介绍

自动spring boot 出现以来,spring security 逐渐被流行起来,主要是spring security 一直是被定义为一个重量级的框架,但是spring boot出现以后,就不一样了,spring security 就逐渐变得简单了很多

做java已经有了多年,发现写了几年的项目,都还没有机会接触到spring security 相关的框架,直到2019年来到了一个公司,做企业数字化的公司,才开始对spring security 有一定的接触

spring security 就是spring的安全模块,就是认证授权,使用起来也很简单,只需要轻轻的引入相关的依赖,就会自动对你的整个web工程做保护了。

源码下载

创建工程

  • 新建一个spring boot工程,名字叫做security,选择依赖spring security 和spring web
    添加maven依赖
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

在这里插入图片描述

  • 新建HelloController类,写一个接口,就会自动交给spring security 管理了
@RestController
public class HelloController {
    
    

    @RequestMapping("/sayHello")
    public String sayHello(){
    
    
        return "十年生死两茫茫,不思量,自难忘----苏轼,hello";
    }
}

测试接口,感受spring security的强大

  • 启动工程security,默认端口号是8080,因为我们还没有配置用户,spring security会自动为我们创建一个默认的用户user,临时密码会在项目启动后通过日志打印到屏幕上,如图
    在这里插入图片描述
  • 访问接口:http://127.0.0.1:8080/sayHello,因为我们增加了spring security 安全模块,所有的接口访问都必须要得到认证授权后,才能正常访问,此时,会自动调整到登录页面,进行登录认证
    在这里插入图片描述
  • 输入用户名:user ,密码:d00df1eb-4a5f-4126-9a35-44eda4d49dfc ,点击登录就能正常访问接口了,注意,这里的密码是临时密码,每次项目启动,临时密码都会发生改变
    在这里插入图片描述

我们来撸一撸spring security安全模块是怎么工作的
1.在访问接口:http://127.0.0.1:8080/sayHello 时,会自动被spring security 拦截认证,发现请求没有携带有效的cookie 认证授权,就会自动重定向到登录spring security 的默认登录页面:http://127.0.0.1:8080/login
在这里插入图片描述
2.当用户输入用户名和密码后,点击登录,spring security认证授权成功后,会重新设置了cookie,然后重定向会到访问的接口地址
在这里插入图片描述
3.完成第二步之后,重定向回来了用户的访问地址:http://127.0.0.1:8080/sayHello 访问时,携带上了有效的cookie,所以能正常访问接口,并返回了接口值

到此,spring security的初级体验版完成了!

源码下载

猜你喜欢

转载自blog.csdn.net/huangxuanheng/article/details/119062001