Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/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
AWS Java SDK-向STS发送SAML请求-找不到请求目标的有效认证路径_Java_Amazon Web Services_Ssl_Ssl Certificate - Fatal编程技术网

AWS Java SDK-向STS发送SAML请求-找不到请求目标的有效认证路径

AWS Java SDK-向STS发送SAML请求-找不到请求目标的有效认证路径,java,amazon-web-services,ssl,ssl-certificate,Java,Amazon Web Services,Ssl,Ssl Certificate,我正在尝试向AWS STS发送SAML请求,以获取可用于与其他AWS服务进行身份验证的临时凭据。下面是我的代码: BasicAWSCredentials basicCreds=new BasicAWSCredentials("", ""); AWSSecurityTokenService stsClient = AWSSecurityTokenServiceClientBuilder.standard().withCredentials(new AWSStaticCredentialsProv

我正在尝试向AWS STS发送SAML请求,以获取可用于与其他AWS服务进行身份验证的临时凭据。下面是我的代码:

BasicAWSCredentials basicCreds=new BasicAWSCredentials("", "");

AWSSecurityTokenService stsClient = AWSSecurityTokenServiceClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(basicCreds)).withRegion(Regions.DEFAULT_REGION.getName()).build();
AssumeRoleWithSAMLRequest samlReq = new AssumeRoleWithSAMLRequest();
samlReq.setRoleArn(role_arn);
samlReq.setPrincipalArn(principal_arn);
samlReq.setSAMLAssertion(assertion);
AssumeRoleWithSAMLResult token = stsClient.assumeRoleWithSAML(samlReq);
请求需要通过代理,我已经在代码中设置了代理。当我运行它时,我看到以下错误:

INFO: Configuring Proxy. Proxy Host: xxx.xxx.com Proxy Port: 9400
com.amazonaws.SdkClientException: Unable to execute HTTP request: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleRetryableException(AmazonHttpClient.java:1201)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1147)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:796)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:764)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:738)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:698)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:680)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:544)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:524)
    at com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient.doInvoke(AWSSecurityTokenServiceClient.java:1719)
    at com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient.invoke(AWSSecurityTokenServiceClient.java:1686)
    at com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient.invoke(AWSSecurityTokenServiceClient.java:1675)
    at com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient.executeAssumeRoleWithSAML(AWSSecurityTokenServiceClient.java:817)
    at com.amazonaws.services.securitytoken.AWSSecurityTokenServiceClient.assumeRoleWithSAML(AWSSecurityTokenServiceClient.java:788)
    at Hello.main(Hello.java:338)
这发生在
AssumeRoleWithSAMLResult-token=stsClient.assumeRoleWithSAML(samlReq)行。我知道当cacerts文件中缺少服务器证书时会发生此错误。我正在本地笔记本电脑上运行代码,所以使用的是我自己的cacerts文件

现在,我想知道是否必须添加代理服务器证书或AWS证书?如果我应该添加AWS证书,我可以从哪里获得?这个问题还有其他解决方法吗

任何帮助都将不胜感激,谢谢