Я работаю над веб-приложением Spring Boot, которому требуется доступ к ресурсу из стороннего веб-приложения. Я пытаюсь понять работу Oauth2. Стороннее веб-приложение использует Oauth2 для предоставления доступа к ресурсам клиента. В документе от стороннего веб-приложения написано, что нужно отправить POST с параметром запроса в указанном ниже формате.
username = <###> & password = <###> & client_id = <###> & client_secret= <###> & grant_type = password & hcode = <###>
Значение hcode фиксировано в соответствии с документом. Я могу написать Java-код, который успешно извлекает мне токен доступа (благодаря поиску в Google!). Ниже приведены мои вопросы ...
- Какой тип гранта используется здесь?
- Предоставляется ли этот код авторизации? Я не вижу здесь кода авторизации.
PS: я новичок в разработке веб-приложений. Я имею в виду следующий пост, чтобы понять Oauth2. [https://www.javainuse.com/spring/spring-boot-oauth-introduction]
String content = "-----";
BufferedReader reader = null;
HttpsURLConnection connection = null;
String returnValue = "";
URL url = new URL(CredentialDto.getTockenurl());
connection = (HttpsURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("Authorization", "Basic " +
CredentialDto.getAuthentication());
connection.setRequestProperty("Content-Type", "application/x-www-form-
urlencoded");
connection.setRequestProperty("Accept", "application/json");
PrintStream os = new PrintStream(connection.getOutputStream());
os.print(content);
os.close();
reader = new BufferedReader(new
InputStreamReader(connection.getInputStream()));
String line = null;
StringWriter out = new StringWriter(connection.getContentLength() > 0 ?
connection.getContentLength() : 2048);
while((line = reader.readLine()) != null) {
out.append(line);
}
accessToken = out.toString();
Matcher matcher = PAT.matcher(retuenValue); if(matcher.matches() &&
matcher.groupCount() > 0) {
accessToken = matcher.group(1);
}