Вызов Restfull сервиса + безопасность

181
03 января 2019, 20:30

Хочу реализовать вызов web api по https + каждый вызов должен быть аутентифицирован - в куках должен присутствовать токен который был создан отдельным запросом на ресурс для аутентификации того же сервиса.

Не подскажите в какую из направлений копать? Гугл отвечает только как обезопасить сервиса, но не как их вызывать.

Answer 1

Небольшой пример того, как можно во время запроса проверить есть ли куки у пользователя, и если нет, то добавить их ему. Защищенный сервис можно вызвать через RestTemplate, добавив в хедер имеющиеся куки.

@RestController
public class MockController {
    @GetMapping("/")
    public ResponseEntity mockEndpoint(HttpServletRequest request, HttpServletResponse response) {
        Optional<Cookie> optionalCookie = extractCookies(request,"MyCookie");
        if (optionalCookie.isPresent()){
            return callProtectedService(optionalCookie.get());
        }
        else {
            String token = getTokenFromProtectedService();
            Cookie cookie = new Cookie("MyCookie",token);
            response.addCookie("MyCookie",token);
            return callProtectedService(cookie);
        }
    }
    private Optional<Cookie> extractCookies(HttpServletRequest request,String cookieName) {
        return Arrays.stream(request.getCookies())
                .filter(cookie -> cookie.getName().equalsIgnoreCase(cookieName))
                .findFirst();
    }
}
READ ALSO
С чего начать изучение API?

С чего начать изучение API?

У меня такая ситуация, У нас есть 1 урок по ASPNet и другой урок по разработке Android приложений, и я хочу написать веб приложение на ASP и его мобильное...

190
Работа с css в qt

Работа с css в qt

Пытаюсь сделать что бы QLabel приобрел полосатую окраску:

191
Слетает верстка ThimPress (Wordpress) шаблона в браузере Safari

Слетает верстка ThimPress (Wordpress) шаблона в браузере Safari

Прошу о помощи знатоков wp, сам я не смог найти в какую сторону копать

176
Флажок в javaScript

Флажок в javaScript

Я начинающий javaScript разработчик, поэтому прошу не пинать строго за данный вопросИмеется следующий javaScript код:

180