簡體   English   中英

使用RestTemplate的Rest API的基本身份驗證

[英]Basic authendication for Rest API using RestTemplate

我正在使用java的spring mvc(基於注解)。 我需要在應用程序中執行rest API。 我對API和REST都很陌生。 我的Rest應用程序需要做哪些基本配置? 我計划使用“ RestTemplate”如何使用RestTemplate進行基本身份驗證(在URL標頭中傳遞用戶名和密碼)? 請任何人幫助我。

提前致謝。

您必須添加身份驗證標頭(例如,Base64來自org.apache.commons.codec.binary.Base64 ):

String plainCreds = "yourUsername@yourPassword";
byte[] plainCredsBytes = plainCreds.getBytes();
byte[] base64CredsBytes = Base64.encodeBase64(plainCredsBytes);
String base64Creds = new String(base64CredsBytes);
HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", "Basic " + base64Creds);

然后將其添加到請求中:

HttpEntity<String> request = new HttpEntity<String>(headers);
ResponseEntity<YourResponseType> response = restTemplate.exchange(url, HttpMethod.GET, request, YourResponseType.class);
YourResponseType account = response.getBody();

對於POST請求,您可以將HttpEntity傳遞給標准的postForObject()方法。

代替“ @”,您必須輸入“:”

String plainCreds = "yourUsername:yourPassword";
byte[] plainCredsBytes = plainCreds.getBytes();
byte[] base64CredsBytes = Base64.encodeBase64(plainCredsBytes);
String base64Creds = new String(base64CredsBytes);
HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", "Basic " + base64Creds);

HttpEntity<String> httpEntity = new HttpEntity<String>(headers);
ResponseEntity<YourResponseType> response = restTemplate.exchange(url, HttpMethod.GET, httpEntity, YourResponseType.class);
YourResponseType account = response.getBody();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM