Сделайте вызов oauth / token, используя мой пользовательский контроллер входа - PullRequest
0 голосов
/ 27 марта 2019

Я реализую oauth2 с защитой Spring, используя Springboot2.

напрямую, когда я звоню на oauth / token, я могу получить результаты ... отлично работает.

Мне нужно заставить его работать так же с моего пользовательского контроллера входа, откуда я могу перенаправить запрос в oauth / token для генерации токенов. Причина в том, что мне нужно хранить токен доступа и время входа в базу данных.

@RequestMapping(value = "/login", method = { RequestMethod.OPTIONS, RequestMethod.POST })
public Object login(HttpServletRequest  request, HttpServletResponse     
            response, @RequestParam Map<String, String> params) {

//Here I want to make a call to oauth/token.

    }

Пожалуйста, помогите в этом отношении. Заранее спасибо.

1 Ответ

0 голосов
/ 05 апреля 2019
RestTemplate restTemplate = new RestTemplate();
    HttpHeaders headers = new HttpHeaders();
    headers.setContentType(MediaType.APPLICATION_JSON);
    headers.set("Authorization", "YOUR_BASIC");
    HttpEntity<String> entity = new HttpEntity<>("", headers);
    String authURL = "YOUR_URL/oauth/token?grant_type=YOUR_GRANT_TYPE&username=" + YOUR_USERNAME + "&password=YOUR_PASSWORD&scope=ui";
    ResponseEntity<String> responseEntity = restTemplate.postForEntity(authURL, entity, String.class);
    JSONObject jsonObj = new JSONObject(responseEntity.getBody());
    jsonObj.get("access_token").toString();

Зависимость:

 <dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20180130</version>
</dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...