4.3. Spring Boot
除了标准的 JAAS 身份验证外,Spring Boot 上的 HawtIO 还可以通过 Spring Security 或 Keycloak 进行保护。如果要为 Spring Boot 禁用 HawtIO 身份验证,请在 application.properties
中添加以下配置:
hawtio.authenticationEnabled = false
hawtio.authenticationEnabled = false
4.3.1. Spring Security 复制链接链接已复制到粘贴板!
将 Spring Security 与 HawtIO 搭配使用:
将
org.springframework.boot:spring-boot-starter-security
添加到pom.xml
中的依赖项:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow src/main/resources/application.properties
中的 Spring Security 配置应该类似如下:spring.security.user.name = hawtio spring.security.user.password = s3cr3t! spring.security.user.roles = admin,viewer
spring.security.user.name = hawtio spring.security.user.password = s3cr3t! spring.security.user.roles = admin,viewer
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必须定义安全配置类来设置如何使用 Spring Security 保护应用程序:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Example:
有关工作 示例,请参阅 springboot-security 示例。
4.3.1.1. 使用 Spring Security 连接到远程应用程序 复制链接链接已复制到粘贴板!
如果您试图连接到启用了 Spring Security 的远程 Spring Boot 应用程序,请确保 Spring Security 配置允许从 HawtIO 控制台访问。最有可能,默认的 CSRF 保护会禁止远程访问 Jolokia 端点,因此会在 HawtIO 控制台中导致身份验证失败。
请注意,它会将您的应用程序暴露于 CSRF 攻击的风险。
最简单的解决方案是在远程应用中禁用 Jolokia 端点的 CSRF 保护,如下所示:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要保护 Jolokia 端点,即使没有 Spring Security 的 CSRF 保护,您需要在
src/main/resources/
下提供一个jolokia-access.xml
文件,类似以下(snippet),以便只有可信节点可以访问它:Copy to Clipboard Copied! Toggle word wrap Toggle overflow