Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何信任被动式Spring安全OAuth2中的自定义证书?_Java_Spring_Spring Security_Spring Security Oauth2_Spring Webclient - Fatal编程技术网

Java 如何信任被动式Spring安全OAuth2中的自定义证书?

Java 如何信任被动式Spring安全OAuth2中的自定义证书?,java,spring,spring-security,spring-security-oauth2,spring-webclient,Java,Spring,Spring Security,Spring Security Oauth2,Spring Webclient,由于与的一些怪癖,我需要执行“拆分地平线”交互,其中主OAuth2令牌交换指向云提供商(使用全局有效的TLS证书),用户信息查询指向使用公司CA签名的证书的内部微服务 我们使用内部证书对微服务进行通用下游API调用,通过向我们使用的WebClient提供公司根证书和中间CA证书,但当Spring Security尝试访问用户信息端点时,它使用的WebClient实例只信任普通的全局CA,因此,在登录时,我们会收到错误,表明无法找到信任根: sun.security.validator.Valid

由于与的一些怪癖,我需要执行“拆分地平线”交互,其中主OAuth2令牌交换指向云提供商(使用全局有效的TLS证书),用户信息查询指向使用公司CA签名的证书的内部微服务

我们使用内部证书对微服务进行通用下游API调用,通过向我们使用的WebClient提供公司根证书和中间CA证书,但当Spring Security尝试访问用户信息端点时,它使用的WebClient实例只信任普通的全局CA,因此,在登录时,我们会收到错误,表明无法找到信任根:

sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
由于允许的公司CA因环境(开发、验收、生产)而异,因此我们试图避免在CI管道中构建信任库的完整副本并添加单个证书;相反,我们希望找到一种在运行时以类似于的方式提供PEM的方法

我们如何将Spring Security配置为既信任CA的全局集合,以便它可以与公共身份提供者执行OAuth2交换,又信任我们的公司CA,以便它还可以向我们的内部端点发出用户信息调用