Java 一次性基本身份验证
我开发了一个spring启动应用程序。当我需要执行REST请求(POST、PUT…)时,我每次都使用这样的基本身份验证Java 一次性基本身份验证,java,spring,spring-boot,resttemplate,Java,Spring,Spring Boot,Resttemplate,我开发了一个spring启动应用程序。当我需要执行REST请求(POST、PUT…)时,我每次都使用这样的基本身份验证 HttpEntity<PostJql> httpEntity = new HttpEntity<PostJql>(post, jiraUtils.getHeader()); ResponseEntity<IssueDataWrapper> response = restTemplate.exchange(urlJiraResp
HttpEntity<PostJql> httpEntity = new HttpEntity<PostJql>(post, jiraUtils.getHeader());
ResponseEntity<IssueDataWrapper> response = restTemplate.exchange(urlJiraResponse, HttpMethod.POST, httpEntity, IssueDataWrapper.class);
HttpEntity-HttpEntity=newhttpentity(post,jiraUtils.getHeader());
ResponseEntity response=restemplate.exchange(urlJiraResponse、HttpMethod.POST、httpEntity、IssueDataWrapper.class);
有没有其他方法可以在应用程序中执行一次基本身份验证,然后在没有基本身份验证的情况下使用RestTemplate或httpPost{Put/Delete…}
向您问好是的。使用满足您需要的
clienthtprequestfactory
配置您的restemplate
您可以在构造函数中设置它:
restTemplate = new RestTemplate(requestFactory);
。。。或者你可以把所有这些东西都做成豆子,然后让弹簧把它们连接起来
您可以扩展SimpleClientHttpRequestFactory
,覆盖createRequest()
:
。。。或者,您可以将Apache HttpComponents作为依赖项引入,并使用HttpComponents客户端HttpRequestFactory
,然后配置底层ApacheHttpClient
,以执行所需的身份验证。Apache,但为了让您开始:
BasicCredentialsProvider credentialsProvider =
new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials("user", "password"));
HttpClient client = HttpClientBuilder.create()
.setDefaultCredentialsProvider(credentialsProvider)
.build();
RestTemplate restTemplate = new RestTemplate(
new HttpComponentsClientHttpRequestFactory(client));
根据我的经验,如果可以的话,引入ApacheHttpComponents是值得的——它比默认情况下使用的基于
HttpUrlConnection
的HTTP客户端更加可靠和可配置。当您的需求扩展到其他身份验证方法、超时、重试策略等方面时,您会很高兴有一个HttpClient
要配置。是。使用满足您需要的clienthtprequestfactory
配置您的restemplate
您可以在构造函数中设置它:
restTemplate = new RestTemplate(requestFactory);
。。。或者你可以把所有这些东西都做成豆子,然后让弹簧把它们连接起来
您可以扩展SimpleClientHttpRequestFactory
,覆盖createRequest()
:
。。。或者,您可以将Apache HttpComponents作为依赖项引入,并使用HttpComponents客户端HttpRequestFactory
,然后配置底层ApacheHttpClient
,以执行所需的身份验证。Apache,但为了让您开始:
BasicCredentialsProvider credentialsProvider =
new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials("user", "password"));
HttpClient client = HttpClientBuilder.create()
.setDefaultCredentialsProvider(credentialsProvider)
.build();
RestTemplate restTemplate = new RestTemplate(
new HttpComponentsClientHttpRequestFactory(client));
根据我的经验,如果可以的话,引入ApacheHttpComponents是值得的——它比默认情况下使用的基于HttpUrlConnection
的HTTP客户端更加可靠和可配置。当您的需求扩展到其他身份验证方法、超时、重试策略等方面时,您会很高兴有一个HttpClient
来配置