Я пытаюсь создать приложение React, которое использует приложение Spring Boot в качестве бэкэнда. Пользователь получает Json веб-токен, когда его операция входа в систему успешна, в параметре заголовка, называемом «Авторизация»:
@Override
protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain,
Authentication authResult) throws IOException, ServletException {
String login = ((UserSS) authResult.getPrincipal()).getUsername();
String token = jwtUtil.generateToken(login);
response.addHeader("Authorization", "Bearer " + token);
}
Я использовал Insomnia для тестирования конечной точки, и, похоже, он работает, потому что токен был получен как и ожидалось:
![Insomnia POST request to login endpoint](https://i.stack.imgur.com/srBin.png)
Проблема в том, что при использовании React и Ax ios значение заголовка не найдено:
const [login, setLogin] = useState('');
const [password, setpassword] = useState('');
async function handleLogin(e) {
e.preventDefault();
const response = await Api.post('/login', {
login, senha: password
});
console.log(response.headers);
if(response.headers['authorization']){
history.push("/menu");
}
}
![console.log(request.headers) result](https://i.stack.imgur.com/cqAuD.png)
Даже если он внутри XHR, но я не могу его получить:
![Authorization header value inside XHR](https://i.stack.imgur.com/xnLw1.png)
Моя конфигурация CORS:
@Bean
CorsConfigurationSource corsConfigurationSource() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
source.registerCorsConfiguration("/**", config.applyPermitDefaultValues());
return source;
}
Есть идеи, что это может быть?