[译]Spring Security - OAuth2

OAuth 2.0 基础知识

OAuth 2.0 Fundamentals

OAuth 2.0 由 IETF OAuth 工作组开发并于 2012 年 10 月发布。它作为一种开放授权协议,使第三方应用程序能够代表资源所有者对 HTTP 服务进行有限访问。它可以在不泄露用户身份或长期凭证的情况下做到这一点。第三方应用程序本身也可以代表其使用它。

More »

[译]Spring Security - 使用数据库表单登录

内容

  • 简介和概述
  • Spring Security 的基本组件
    • AuthenticationFilter 认证过滤器
    • AuthenticationManager 认证管理器
    • AuthenticationProvider 认证提供者
    • UserDetailsService 用户详情服务
    • PasswordEncoder 密码编码器
    • Spring 安全上下文
    • 表单登录
    • 使用数据库登录
    • 登录尝试限制
  • 入门(实用指南)

简介和概述

除了提供各种内置的身份验证和授权选项之外,Spring Security 还允许我们根据需要自定义身份验证过程。从自定义登录页面到我们自己的自定义身份验证提供程序和身份验证过滤器,我们几乎可以自定义身份验证过程的各个方面。

More »

[译]Spring Security - 表单登录、记住我和注销

内容

  • 简介和概述
  • 入门(实用指南)

简介和概述

Spring Security 附带了大量内置功能和工具,为我们提供方便。在这个例子中,我们将讨论其中三个有趣且有用的功能 -

  • 表单登录
  • 记住账号
  • 登出

表单登录

基于表单的登录是 Spring Security 提供支持的一种用户名/密码身份验证形式。这是通过 Html 表单提供的。

More »

[译]Spring Security 和 Spring Boot 入门

Spring Security 是一个有助于保护企业应用程序安全的框架。通过与 Spring MVC、Spring Webflux 或 Spring Boot 集成,我们可以创建一个强大且高度可定制的身份验证和访问控制框架。在本文中,我们将解释核心概念并仔细研究 Spring Security 提供的默认配置及其工作原理。我们将进一步尝试自定义它们并分析它们对示例 Spring Boot 应用程序的影响。

More »

[译]Spring Security:深入了解身份验证和授权

您可以使用本指南来了解 Spring Security 是什么以及其核心功能(如身份验证、授权或常见漏洞保护)如何工作。此外,还有全面的常见问题解答。

(编者注:大约 6500 字,您可能不想尝试在移动设备上阅读本文。将其添加为书签,稍后再回来。)

介绍

迟早每个人都需要为其项目添加安全性,在 Spring 生态系统中,您可以借助 Spring Security 库来实现这一点。

More »

[译]为 Spring Boot 应用程序创建优化的 Docker 映像

容器已成为打包具有所有软件和操作系统依赖项的应用程序,然后将其传送到不同环境的首选方式。

本文着眼于容器化 Spring Boot 应用程序的不同方法:

  • 使用 Docker 文件构建 Docker 镜像,
  • 使用 Cloud-Native Buildpack 从源代码构建 OCI 映像,
  • 通过使用分层工具将 JAR 的各个部分拆分为不同的层,在运行时优化映像。

示例代码

本文附有 GitHub 上的工作代码示例。

More »

[译]深入了解Spring事务管理:@Transactional

您可以使用本指南来简单实用地了解 Spring 使用 @Transactional 注释进行事务管理的工作原理。

唯一的先决条件?您需要对 ACID 有一个粗略的了解,即什么是数据库事务以及为什么使用它们。此外,这里不讨论分布式事务或反应式事务,但就 Spring 而言,一般原则仍然适用。

More »

Spring Security和OAuth2发展过程

Spring Security 的发展过程

Spring Security 是一个功能强大且广泛使用的安全框架,为企业级应用程序提供了全面的安全性。Spring Security 最初是 Acegi Security 项目的一部分,于 2004 年发布,现在已经成为 Spring 生态系统的核心组件。 Spring Security 的发展过程可以分为三个阶段:

More »

数据库如何设计树形结构

在 MySQL 中,设计树形结构的区域表有多种方式。以下是一些常见的方案:

  1. 父子关系(Parent-Child Relationship)模型:在这种模型中,每个行记录包含一个指向其父级的引用。可以使用一个额外的列来存储父级 ID,或者使用自连接表来表示关系。这种模型简单直观,易于理解和管理。
  2. 路径(Path)模型:在这种模型中,每个行记录都包含一个代表其完整路径的字段。路径可以是以某种分隔符(如斜杠)分隔的字符串,例如:/地区/国家/城市。通过解析和处理路径字段,可以轻松地查询父级、子级和兄弟节点。
  3. 嵌套集模型(Nested Set Model):这是一种基于左右值的模型,通过预先计算每个节点的左右值,可以高效地查询树形结构。每个节点都有一个左值和一个右值,用于表示其在树中的位置。这种模型适用于大型树结构,但需要特殊的操作来维护左右值。
  4. 物化路径(Materialized Path)模型:这是路径模型的一种改进版本,它使用额外的列来存储节点的层级关系。除了路径字段外,还可以添加一个表示节点级别的字段。这样可以更高效地进行查询,并且可以轻松地获取节点的父级、子级和兄弟节点。

父子关系(Parent-Child Relationship)模型

父子关系(Parent-Child Relationship)模型是一种在 MySQL 中设计树形结构的方式。在该模型中,每个区域记录包含一个指向其父级区域的引用。通过这种父子关系,可以建立区域之间的层级结构。

More »

周报-28|技术文档范例

前言

本篇是对 2023-07-102023-07-16 这周生活的记录与思考。首发在我的个人 博客,你可以移步了解更多或者给我留言。

读书、健身、投资、帮朋友、陪家人。

这是我的第 27 篇周报,由于工作的原因,前两周的周报是一起发布的,所以第 27 篇周报被跳过去了。

More »