Spring Boot:禁用特定 URL 的客户端身份验证

Ran*_*aul 9 java spring spring-boot

我的配置中有以下配置application.yml

server:
  #address:
  port: 8443
  sessionTimeout: 30
  ssl:
    client-auth: need
    key-store: keyStore.jks
    key-store-password: 12345
    key-password: datacert

    protocol: TLS
    trust-store: truststore.jks
    trust-store-password: 12345
Run Code Online (Sandbox Code Playgroud)

因为我有client-auth: need,所以我的应用程序提示所有 URL 的证书,我是否可以绕过client auth某些特定的 URL/info\healthURL?

小智 2

Spring boot 不允许混合使用 http 和 https。也不建议将 URL 与不安全页面混合在一起。

如果您只需要确保某些 URL 的安全,请实施自定义身份验证,因为默认情况下,每个请求都会发生 SSL 握手。

您可以参考这些讨论:How set up Spring Boot to run HTTPS / HTTP ports

例如,请求只有在经过身份验证后才会到达服务器。

您可以尝试使用过滤器创建和捕获请求,但我怀疑您是否会在 Web 服务器验证请求之前在服务器上收到请求。

例如,尝试添加 java Filter 并捕获所需的 URL 以过滤安全和非安全。(过滤器可在 web.xml 下配置或作为注释进行配置)。其他选择是尝试 Spring Security 过滤器链代理。