第 3 章 使用带有 Spring Boot 的 Red Hat Single Sign-On


Red Hat Single Sign-On 客户端适配器是库,它非常容易使用 Red Hat Single Sign-On 来保护应用程序和服务。您可以使用 Keycloak Spring Boot 适配器来保护 Spring Boot 项目。

要保护 Spring Boot 应用程序,请将 Keycloak Spring Boot 适配器 JAR 添加到您的项目中。Keycloak Spring Boot 适配器利用 Spring Boot 的自动配置功能,因此您需要做的都是将 Keycloak Spring Boot Start 添加到项目中。

流程

  1. 要手动添加 Keycloak Spring Boot starter,请将以下内容添加到项目的 pom.xml 中。

    <dependency>
            <groupId>org.keycloak</groupId>
            <artifactId>keycloak-spring-boot-starter</artifactId>
    </dependency>
    Copy to Clipboard Toggle word wrap
  2. 添加 Adapter BOM 依赖项。

    <dependencyManagement>
      <dependencies>
            <dependency>
              <groupId>org.keycloak.bom</groupId>
              <artifactId>keycloak-adapter-bom</artifactId>
              <version>3.4.17.Final-redhat-00001</version>
              <type>pom</type>
              <scope>import</scope>
            </dependency>
      </dependencies>
    </dependencyManagement>
    Copy to Clipboard Toggle word wrap
  3. 将您的 Spring Boot 项目配置为使用 Keycloak。您可以使用正常的 Spring Boot 配置为 Spring Boot Keycloak 适配器配置域,而不是 keycloak.json 文件。例如,将以下配置添加到 src/main/resources/application.properties 文件中。

    keycloak.realm = demorealm
    keycloak.auth-server-url = http://127.0.0.1:8080/auth
    keycloak.ssl-required = external
    keycloak.resource = demoapp
    keycloak.credentials.secret = 11111111-1111-1111-1111-111111111111
    keycloak.use-resource-role-mappings = true
    Copy to Clipboard Toggle word wrap

    您可以通过设置 keycloak.enabled = false 来禁用 Keycloak Spring Boot Adapter (例如在测试中)。要配置 Policy Enforcer,与 keycloak.json 不同,必须使用policy-enforcer-config 而不是只使用 policy-enforcer

  4. web.xml 中指定 Java EE 安全配置。Spring Boot Adapter 会将 login-method 设置为 KEYCLOAK,并在启动时配置 security- constraint。下面是一个示例配置。

    keycloak.securityConstraints[0].authRoles[0] = admin
    keycloak.securityConstraints[0].authRoles[1] = user
    keycloak.securityConstraints[0].securityCollections[0].name = insecure stuff
    keycloak.securityConstraints[0].securityCollections[0].patterns[0] = /insecure
    
    
    keycloak.securityConstraints[1].authRoles[0] = admin
    keycloak.securityConstraints[1].securityCollections[0].name = admin stuff
    keycloak.securityConstraints[1].securityCollections[0].patterns[0] = /admin
    Copy to Clipboard Toggle word wrap

    注: 如果您计划将 Spring 应用程序部署为 WAR,则不要使用 Spring Boot Adapter。将专用适配器用于您正在使用的应用服务器或 servlet 容器。Spring Boot 也应包含 web.xml 文件。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat