spring 使用安全句柄启动 restTemplate 调用(获取数据)
spring boot restTempalte call (get Data) with security handel
我想通过在 springboot 中调用 resttempalte 从另一个应用程序获取数据..
如何设置我的 header 安全性..如何处理另一个应用程序的安全性
RestTemplate restTemplate = new RestTemplate();
字符串结果 = restTemplate.getForObject(uri, String.class);
System.out.println("Rest--->"+结果);
你可以这样使用:
final String uri = "http://localhost:9090/TicketingSystem/caselogcontroller/getAppIds";
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("authorization", <your tokens>));
String result = restTemplate.exchange(uri, HttpMethod.GET, new HttpEntity<>(headers) String.class);
System.out.println("Rest--->"+result);
用户 OAuth2RestTemplate 使用凭据发出经过身份验证的 REST 请求。
以下是一个基于 XML 的配置示例,可帮助您入门:
<bean id="oAuth2RestTemplate" class="org.springframework.security.oauth2.client.OAuth2RestTemplate">
<constructor-arg ref="clientCredentialsResourceDetails"/>
<constructor-arg ref="defaultOAuth2ClientContext"/>
<property name="requestFactory" ref="httpComponentsClientHttpRequestFactory"/>
<property name="accessTokenProvider">
<bean class="org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsAccessTokenProvider">
<property name="requestFactory" ref="httpComponentsClientHttpRequestFactory"/>
</bean>
</property>
</bean>
<bean id="httpComponentsClientHttpRequestFactory" class="org.springframework.http.client.HttpComponentsClientHttpRequestFactory">
<constructor-arg ref="httpsClientFactory"/>
</bean>
<bean id="httpsClientFactory" class="com.finity.ssl.HttpsClientFactory">
<property name="sslKeyStorePath" value="${server.ssl.key-store:}"/>
<property name="sslKeyStorePassword" value="${server.ssl.key-store-password}"/>
<property name="sslKeyPassword" value="${server.ssl.key-password}"/>
<property name="sslTrustStorePath" value="${server.ssl.trust-store:}"/>
<property name="sslTrustStorePassword" value="${server.ssl.trust-store-password}"/>
</bean>
<bean id="clientCredentialsResourceDetails" class="org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsResourceDetails">
<property name="accessTokenUri" value="${auth.service.url:https://localhost:8443/auth-service}/oauth/token"/>
<property name="clientId" value="${auth.service.client.id:DUMMY_CLIENT_ID}"/>
<property name="clientSecret" value="${auth.service.client.secret:password}"/>
</bean>
<bean id="defaultOAuth2ClientContext" class="org.springframework.security.oauth2.client.DefaultOAuth2ClientContext"/>
我想通过在 springboot 中调用 resttempalte 从另一个应用程序获取数据.. 如何设置我的 header 安全性..如何处理另一个应用程序的安全性
RestTemplate restTemplate = new RestTemplate(); 字符串结果 = restTemplate.getForObject(uri, String.class);
System.out.println("Rest--->"+结果);
你可以这样使用:
final String uri = "http://localhost:9090/TicketingSystem/caselogcontroller/getAppIds";
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("authorization", <your tokens>));
String result = restTemplate.exchange(uri, HttpMethod.GET, new HttpEntity<>(headers) String.class);
System.out.println("Rest--->"+result);
用户 OAuth2RestTemplate 使用凭据发出经过身份验证的 REST 请求。 以下是一个基于 XML 的配置示例,可帮助您入门:
<bean id="oAuth2RestTemplate" class="org.springframework.security.oauth2.client.OAuth2RestTemplate">
<constructor-arg ref="clientCredentialsResourceDetails"/>
<constructor-arg ref="defaultOAuth2ClientContext"/>
<property name="requestFactory" ref="httpComponentsClientHttpRequestFactory"/>
<property name="accessTokenProvider">
<bean class="org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsAccessTokenProvider">
<property name="requestFactory" ref="httpComponentsClientHttpRequestFactory"/>
</bean>
</property>
</bean>
<bean id="httpComponentsClientHttpRequestFactory" class="org.springframework.http.client.HttpComponentsClientHttpRequestFactory">
<constructor-arg ref="httpsClientFactory"/>
</bean>
<bean id="httpsClientFactory" class="com.finity.ssl.HttpsClientFactory">
<property name="sslKeyStorePath" value="${server.ssl.key-store:}"/>
<property name="sslKeyStorePassword" value="${server.ssl.key-store-password}"/>
<property name="sslKeyPassword" value="${server.ssl.key-password}"/>
<property name="sslTrustStorePath" value="${server.ssl.trust-store:}"/>
<property name="sslTrustStorePassword" value="${server.ssl.trust-store-password}"/>
</bean>
<bean id="clientCredentialsResourceDetails" class="org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsResourceDetails">
<property name="accessTokenUri" value="${auth.service.url:https://localhost:8443/auth-service}/oauth/token"/>
<property name="clientId" value="${auth.service.client.id:DUMMY_CLIENT_ID}"/>
<property name="clientSecret" value="${auth.service.client.secret:password}"/>
</bean>
<bean id="defaultOAuth2ClientContext" class="org.springframework.security.oauth2.client.DefaultOAuth2ClientContext"/>