在 Spring Boot 中禁用 Keycloak Security
1、概览 {#1概览} ----------- Keycloak 是一个开源的身份和访问管理解决方案。在测试阶段,禁用 Keycloak 可能有助于专注于业务测试。而且在测试环境中可能没有 Keycloak 服务器。 本文将带你了解如何禁用 Keycloak starter 的配置,以及如何在项目中启用 Spring Security 后如何对其进行修改。 2、在非 Sp...
1、概览 {#1概览} ----------- Keycloak 是一个开源的身份和访问管理解决方案。在测试阶段,禁用 Keycloak 可能有助于专注于业务测试。而且在测试环境中可能没有 Keycloak 服务器。 本文将带你了解如何禁用 Keycloak starter 的配置,以及如何在项目中启用 Spring Security 后如何对其进行修改。 2、在非 Sp...
GraphQL 是啥? {#graphql-是啥} ------------------------- 根据其 [官方文档](https://graphql.org/learn/),"GraphQL 是一种用于 API 的查询语言,也是一种服务器端运行时,可使用你为数据定义的类型系统来执行查询"。该语言由 Meta 公司开发并开源,目前由众多公司和个人社区...
简介 {#简介} -------- 本文将带你了解 Spring Boot 应用中对 API 进行版本控制的重要性,以及不同的实现方式。 通过 API 版本控制,你可以对API进行更改,而不会破坏与现有客户端的兼容性。本文将介绍四种常见的版本控制方式:URI 版本控制、请求参数版本控制、自定义 Header 版本控制和内容协商(Accept Header)版本控制。 UR...
在一些数据比较敏感或者对安全要求比较高的应用中,客户端提交给服务器的数据需要进行加密,服务器需要解密后才能获取到原始的请求数据。 在 Spring Boot 中,可以通过 `RequestBodyAdvice` 对请求体进行统一的解密处理,这对 Controller 来说是完全透明的,极大地提高了应用的可维护性。 RequestBodyAdvice 接口 {#request...
在本文中,我们将创建一个名为 `messages-webapp` 的 Spring MVC + Thymeleaf Web 应用,并使用 Keycloak 进行访问控制,使用 Spring Security OAuth 2.0 进行认证。 你可以在 [Github](https://github.com/sivaprasadreddy/spring-security-oaut...
在 [上一篇文章](/spring-security-oauth2-tutorial-securing-springmvc-client-application/) 中,我们创建了 `messages-webapp`,并使用 "授权码模式" 通过 Spring Security OAuth 2.0 对其进行了访问控制。在本文中,我们将创建 `messages...
在前面的文章中,我们创建了 `messages-webapp` 和 `messages-service`,并使用 Postman 调用了 API 端点。在本文中,我们将学习如何从客户端应用 `messages-webapp` 调用受保护的 `messages-service` API 端点。 你可以从 [Github 仓库](https://github.com/sivapr...
在本文中,我们将学习如何使用 "客户端凭证模式"(Client Credentials Flow)实现服务间的通信。我们将创建 `archival-service`,在其中通过定时任务使用 "客户端凭证模式" 来调用 `messages-service` API 以归档消息。 我们还会在 `archival-service` 中实现 `...
本文将教你如何使用 Spring Boot 构建 Modulith,并使用 Spring Modulith 项目的特性。Modulith 是一种软件架构模式,假设将你的单体应用程序组织成逻辑模块。这些模块应尽可能独立于彼此。Modulith 平衡了单体架构和基于微服务的架构。它可以成为组织应用程序的目标模型。但你也可以将其视为从单体架构向基于微服务的方法迁移的过渡阶段。Spri...
[GraphQL](https://graphql.org/) 是一种用于 API 的查询语言和运行时,它允许 API 消费者精确获取所需的信息,而不是服务器完全控制响应内容。某些 REST API 实现需要从多个 URL 加载资源的引用,而 GraphQL API 可以在单个响应中跟踪相关对象之间的引用并返回它们。 本教程逐步演示了如何使用 Spring Boot 和 Sp...