搭建本地Maven仓库Nexus

使用 Docker 安装

$ docker volume create --name nexus_data

$ docker run -d -p 8081:8081--name nexus -v nexus_data:/nexus-data sonatype/nexus3
  • 8081 是 Nexus UI 端口

使用 Docker Compose 安装

services:
    nexus:
        image: sonatype/nexus3
        platform: linux/amd64
        ports:
            - "8081:8081"
        volumes:
            - nexus_data:/nexus-data
            - /etc/localtime:/etc/localtime:ro

volumes:
    nexus_data:

访问并配置 Nexus

访问 http://127.0.0.1:8081/ 或者是 http://<your IP>:8081,用户名为 admin ,初始密码在容器里的 /nexus-data/admin.password 文件

More »

All things about OAuth

OAuth 是一种开放协议,允许通过网络、移动和桌面应用程序以简单标准的方式进行安全授权。

OAuth 2 入门

以下是一些 OAuth 2.0 指南,涵盖了理解和实现客户端和服务器所需的许多主题。

More »

JWT

什么是 JWT?

JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在网络应用程序之间安全地传输信息。它被设计用于在两方之间传输声明,这些声明可以是身份验证和授权信息,也可以是任何其他类型的信息。

设计目的:不需要服务器端存储状态,安全地传递非敏感信息。

JWT 特点

  • 可扩展性:可以在 payload 中携带任意的 JSON 数据
  • 自包含性:所有用户相关信息都在 JWT 中,不需要依赖数据库
  • 无状态性:服务器不需要保存会话状态,提高了系统的可扩展性
  • 跨域支持:可以跨域传递,因为是 JSON 格式
  • 安全性:通过签名确保数据不被篡改

JWT 组成

eyJraWQiOiJmYTNkZmZjMS0xZmQ3LTRhM2QtYTEyMC1mNjY4OWE4NDM5YjQiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjbGllbnQiLCJhdWQiOiJjbGllbnQiLCJuYmYiOjE3MTc1NDk5NDMsImlzcyI6Imh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIsImV4cCI6MTcxNzU1MDI0MywiaWF0IjoxNzE3NTQ5OTQzLCJqdGkiOiJiMjU0ZGVhMi1kMWE2LTQxNzEtYjEyYy1lNmYzYzZjMDJkMGQifQ.eRiS0H2E-h5PiDEfJikjoPGH1DCqWVt4VIzLtPoSOaIK6jBIaw0h5m-reZVUyZPNYZG68Ymhey17aZBMveirqCxN-lNcPMIGfuqMptfsD9E6Hfam6bEMgpEAOQsQ6Ruk3vGtdmjnEC2h9ZStoqT5-C6JgArwFLGgX92LXrRYz7-60n0I6EAB07u9kxc6FQKLow90RiyXi2YLur-ttOUQpecf8zHi48zRc-HLLoWAMaNddT-4hg4v0Qts4DultpxZB_Xu7DRc91G_8M6sYFSvFSVFHlcWFgKNLZqUYwepLHX2LxoXdbTLGqV9x__-J8UO0TO3TkpC2BaZAiseYcpYMw

JWT 主要有以下三个部分通过 base64 加密组成:

More »

OAuth2和OIDC区别

认证和授权

认证 (Authentication)

  • 认证是验证用户、设备或系统身份的过程。
  • 常见的认证方式包括用户名/密码、生物特征(如指纹、人脸)、单点登录(SSO)等。
  • 认证确保只有被授权的实体才能访问系统或资源。

授权 (Authorization)

More »

[译]OAuth2 with Spring 第1部分:了解基本概念

原文地址:https://mainul35.medium.com/oauth2-with-spring-part-1-knowing-the-basic-concepts-5c4aa17884a

在本系列关于 Spring 的 OAuth2的文章中,我将尝试介绍和解释与 OAuth2 相关的每一个问题以及如何在 Spring 框架中实现这些问题。请记住,OAuth2 完全是一个概念性的东西,在不同的框架中,它有自己的实现。此外,许多应用程序开发人员开发自己的 OAuth2 实现,而不使用 Spring 框架提供的 OAuth2 框架支持。因此,我将就这个主题撰写一系列文章。

More »

[译]OAuth2 with Spring 第2部分:授权服务器入门

原文地址:https://mainul35.medium.com/oauth2-with-spring-part-2-getting-started-with-authorization-server-13804910cb2a

Spring 团队最近发布了他们的授权服务器。OAuth2 一直是一个热门话题,而构建或理解授权服务器一直是一个谜。在本系列的第 1 部分中,我描述了几乎所有您需要了解的有关 OAuth2 的概念性内容。在本系列的这篇文章中,我将尝试演示如何构建具有client_credential授权类型的授权服务器。我将从使用配置属性进行自动配置开始解释它们,并通过编写 Java 代码自定义配置。让我们开始吧。

More »

[译]OAuth2 with Spring 第3部分:使用Spring授权服务器授予authorization_code OIDC客户端

原文地址:https://mainul35.medium.com/oauth2-with-spring-part-3-authorizing-oidc-client-with-via-authorization-code-grant-from-spring-67769f9dd68a

上一篇文章中,我们讨论了使用 client_credential 的 OAuth2 授权服务器配置。在本文中,我们将讨论使用 authorization_code 授予类型的授权服务器配置。此授权流程将有一个 OIDC 客户端,它将通过使用授权码进行请求来获取 JWT 令牌。

More »

[译]OAuth2 with Spring 第4部分:Spring授权客户端与Google授权服务器的社交登录演示

原文地址:https://mainul35.medium.com/oauth2-with-spring-part-4-spring-authorization-client-social-login-demo-with-google-be6097ec18a5

之前的文章中,我们学习了如何使用 OIDC 连接到我们自己的授权服务器。我们在自托管授权服务器中定义了我们自己的客户端应用程序。在今天的文章中,我们将使用 Google 和 GitHub 作为我们的授权服务器,并将我们的授权客户端应用程序连接到这些授权服务器并从它们接收令牌。应用程序登录屏幕将如下所示。

More »

[译]OAuth2 with Spring 第5部分:使用PKCE保护您的Spring Boot应用程序以增强安全性

原文地址:https://mainul35.medium.com/oauth2-with-spring-part-5-securing-your-spring-boot-application-with-pkce-for-enhanced-security-d8025cd08769

免责声明:本文技术性很强,需要清楚了解本系列前几篇文章,特别是第 1 部分和第 3 部分。

带有代码交换证明密钥 (PKCE) 的授权代码流用于无法存储客户端机密的应用程序。此类应用程序包括:

More »