SpringBoot整合SpringSecurity [超详细] (一)入门案例

导读:本篇文章讲解 SpringBoot整合SpringSecurity [超详细] (一)入门案例,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com


前言

1. 主流安全框架有哪些

Java Web 应用中安全框架使用率较高的莫过于 Spring SecurityApache Shiro

2. Spring Security为什么越来越火

但是自从Spring Boot,Spring Cloud火起来后,也带火了我们的 Spring Security!
Spring Security作为我们的安全管理的框架,一直以来都因为重量级,配置繁琐,门槛高困扰着我们的开发者,让很多的初学者望而却步。但是随着Spring Boot的出世和普及,这些问题都得到了解决。
Spring Security 是 Spring Boot 底层安全模块默认的技术选型,可以实现强大的 web 安全控制,我们仅需要引入 spring-boot-starter-security 依赖,进行少量配置,即可实现强大的安全管理。

3. 为什么现在越来越多的人选择Spring Security

在 Spring Boot 或者 Spring Cloud 中,如果想选择一个权限管理框架,几乎毫无疑问的选择 Spring Security,Shiro 在这个环境下实际已经不具备优势了。因为Spring这个生态链现在是太强大了,从我们的 Spring MVC 替代掉了 Strus2 及现在 Spring Boot 的环境下 Spring Security 的应用越来越广泛就可以看出整个Java生态链越来越完善,强大;这个和我们熟知的小米经营的小米生态链一样,小到电池,中到智能开关、智能门把手、小米手机、大到智能电视、智能家居已经走进了我们生活中的方方面面,在经营整个生态圈的方面就已经把很多别的技术替代掉了。我们曾经的一些技术不是不好,只是他们和 Spring 下的很多东西不够兼容,所以被我们慢慢舍弃。由此可见 Spring Security 是我们大环境下必会的一部分了。


一、Spring Security 简介

1. 官网及GitHub地址

Spring Security 官网:https://spring.io/projects/spring-security

Spring Security GitHub 开源地址:https://github.com/spring-projects/spring-security

2. Spring Security 核心功能

  • 认证 – 你是谁
  • 授权 – 你能干什么

二、Spring Security 入门案例

1. 新建项目

首先创建一个 Spring Boot 项目,创建时引入 Spring Web 和 Spring Security 依赖,如下图:
在这里插入图片描述
在这里插入图片描述
项目结构目录:
建议修改 pom.xml 中 springboot依赖版本,改为 2.5.13刷新maven
在这里插入图片描述

2. 创建 HelloController 类

2.1 创建 HelloController 类

@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello(){
        return "hello,Spring Security";
    }
}

启动项目后,我们在控制台上看到这样一段日志信息:

Using generated security password: 764f035c-4da9-490e-b3ee-fcb4b73fae20

在这里插入图片描述
这就是 Spring Security 为默认用户 user 生成的临时密码,是一个 UUID 字符串

提示:该用户名和密码一般用于开发或测试阶段。

在这里插入图片描述

2.2 配置文件中自定义用户名和密码

正常的业务逻辑中,我们的用户名和密码都是从我们的数据库中查询出来的,但是我们在开发过程中还没有涉及到数据库时;我们每回重启项目都需要随机密码很不方便,这时我们就可以自己配置用户名和密码。

2.2.1 application.propertie
spring.security.user.name=admin
spring.security.user.password=123456
2.2.2 application.yml
spring:
  security:
    user:
      name: admin
      password: 123456

源码:
org.springframework.boot.autoconfigure.security.SecurityProperties.User
在这里插入图片描述

3. 测试

接下来我们去访问 http://localhost:8080/hello 时,就会自动重定向到我们 Spring Security 提供的默认登录页面
在这里插入图片描述

3.1 使用默认用户名和随机密码

在登录页面中输入我们上述提到的默认用户名 user , 密码为启动SpringBoot项目时控制台打印的 日志信息 ,这样就能正常的登录成功了,登录成功后我们就访问到了 /hello 接口。

3.2 自定义用户名和密码

使用自己自定义的用户名密码登录即可
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/107636.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!