【Spring实战】10 Security 入门

2023-12-29 06:18:47

本文将带你使用 4行 代码 走进 Security 的大门 !

下一篇【Spring实战】11 Security 常用配置 文章,再去继续介绍 Spring Security 的几个常用配置。

Spring Security 是一个用于在 Java 应用程序中提供身份验证(Authentication)和授权(Authorization)功能的强大框架。它构建在 Spring 框架的基础之上,为开发者提供了一套完整的安全性解决方案,使得在应用程序中集成用户认证和授权变得更加简便和灵活

官方网址

https://spring.io/projects/spring-security/

1. 依赖

首先,需要在项目的 pom.xml 文件中引入 Spring Security 的依赖

pom.xml

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

就这么一个简简单单的引入依赖,Spring Security 就配置完成啦!

2. 创建一个请求

启动服务之前我们准备一个供浏览器访问的请求

UserController.java

@RestController
@RequestMapping("user")
public class UserController {

    @GetMapping
    public String hello() {
        return "Hello";
    }
}

3. 创建一个启动类

创建一个正常的启动类,供启动 Spring Boot 服务

DemoApplication.java

package com.cheney.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

4. 启动服务

启动我们刚刚准备好的 DemoApplication 服务

在这里插入图片描述

服务启动完成之后,可以看到控制台为我们生成了一串密码

Using generated security password: 7c94fc0d-70b7-46ce-a780-264a39562b89

5. 访问验证

访问刚刚准备好的如下请求看效果

http://localhost:8080/user

在这里插入图片描述

是不是很神奇,我们明明访问的 API,怎么就跳到了 login 画画,并且我们也没有画这么个画面呀!

6. 登录验证

我们尝试登陆一下,使用 Spring Security 默认的用户名是 user, 密码就是刚刚控制台生成的那一串字符串

在这里插入图片描述

输入完用户名和密码之后,点击 Sign in 按钮

在这里插入图片描述

此时,我们期待的 Hello 就又出现啦!恭喜你 Spring Security 已经学完啦_

※ 当然,这它的强大之处远远没有这么简单,哈哈。

7. 主要功能

  • 身份验证(Authentication)

    提供了多种身份验证机制,包括基于用户名和密码的认证、LDAP 认证、OAuth、OpenID 等。我们可以选择合适的身份验证方式来满足应用程序的需求

  • 授权(Authorization)

    支持基于角色和权限的授权机制。可以定义哪些用户拥有哪些角色和权限,以便在应用程序中进行细粒度的访问控制

  • 表单登录和登录保持

    提供了内置的表单登录和记住我功能,使得用户可以通过填写用户名和密码登录,并且可以选择在下一次访问时保持登录状态

  • 注解和标签

    支持在代码层面和页面层面使用注解和标签进行权限控制,使得权限配置更加灵活

  • CSRF 和 CORS 防护

    内置了对跨站请求伪造和跨域资源共享的防护机制,增强应用程序的安全性

  • 自定义过滤器和拦截器

    允许开发者通过自定义过滤器和拦截器来扩展和定制安全性策略

  • 集成第三方认证服务

    支持集成第三方认证服务,例如使用社交媒体账号进行登录(OAuth、OpenID Connect)

  • Session 管理

    提供了对会话管理的支持,包括会话超时、并发控制等

下一篇【Spring实战】11 Security 常用配置 文章,再去继续介绍 Spring Security 的几个常用配置。

总结

Spring Security 是一个 模块化的框架,它可以集成到任何基于 Spring 的应用程序中。无论是构建传统的基于服务器的 Web 应用、RESTful 服务,还是使用 Spring Boot 构建微服务,Spring Security 都可以提供一致的安全性解决方案。

文章来源:https://blog.csdn.net/yanyc0411/article/details/135280773
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。