Я пытаюсь защитить свою службу REST. Служба входа в систему вроде работает и выдает ответ, но я ничего не могу определить как токен безопасности. Когда я автоматически подключаю контроллеры, все работает, запрещая и разрешая доступ, когда это необходимо. Однако, когда я пытаюсь получить доступ через службу REST, я не вижу ничего, что является токеном безопасности, и даже если я это сделал, я не уверен, что с ним делать. Сначала я думал, что весь заголовок службы login был токеном из-за частей X-Content-Type-Options
и X-XSS-Protection
, но теперь я не уверен. Более того, я не уверен, что даже если токен был, что с ним делать. Моя первая мысль заключалась в том, чтобы назначить заголовки из службы входа в систему заголовкам postForObject
, но это не сработало, как и несколько других вещей, которые я пробовал.
Итак, вопрос: получаю ли я токен вообще? И если да, то как мне изменить свой вызов postForObject
? Если нет, очевидно, что мне придется опубликовать дополнительную информацию, но мне нужно знать, что искать. Как выглядит токен и как он используется с RestTemplate
и postForObject
?
HttpHeaders: [X-Content-Type-Options:"nosniff", X-XSS-Protection:"1; mode=block", Cache-Control:"no-cache, no-store, max-age=0, must-revalidate", Pragma:"no-cache", Expires:"0", X-Frame-Options:"DENY", Set-Cookie:"JSESSIONID=C6E1150B1A61082AE77C25EA6C997009; Path=/; HttpOnly", Content-Type:"application/json", Transfer-Encoding:"chunked", Date:"Sat, 11 Jul 2020 17:24:17 GMT", Keep-Alive:"timeout=60", Connection:"keep-alive"]
Тест REST, который работает не :
// login
HttpEntity<UserDto> request = new HttpEntity<>(userDto1);
ResponseEntity<UserDto> response = rt.exchange(loginUrl, HttpMethod.POST, request, resultingType);
HttpHeaders administratorHeaders = response.getHeaders();
// call
request = new HttpEntity<>(userDto2, administratorHeaders);
UserDto savedUser = rt.postForObject(saveUrl, request, UserDto.class);
Тест автоматического подключения, который работает :
// login
ResponseEntity<?> administratorAuthentication = loginController.login(userDto1);
// call
UserDto savedUser = userController.save(userDto2);