У меня Angular 7 в качестве внешнего интерфейса и Spring Boot в качестве внутреннего.
Угловое приложение, размещенное на localhost: 4200, и приложение Spring, размещенное на localhost: 8080
При входе в систему я сохраняю весеннюю сессию и возвращаю cookie.Когда пользователь снова пытается войти в систему, я сначала проверяю, существует ли сеанс.
Для этого требуется cookie от клиента.Но я не получаю куки в запросе клиента.
В инструментах разработчика Chrome на вкладке «Приложение» можно увидеть следующие файлы cookie:
![enter image description here](https://i.stack.imgur.com/TETth.png)
В приложении Spring Boot application.properties у меня есть:
spring.session.store-type=jdbc
spring.session.jdbc.initialize-schema=always
server.servlet.session.timeout=60
spring.session.jdbc.table-name=SPRING_SESSION
server.servlet.session.cookie.max-age=2592000
В контроллере:
@RestController
@CrossOrigin(allowCredentials = "true", origins = {"http://localhost:4200", "http://127.0.0.1:4200"})
@RequestMapping(value = "/users")
public class UsersController {
...
@RequestMapping(value = "/login", method = RequestMethod.GET)
public ResponseEntity<?> login(HttpServletRequest request, HttpServletResponse response) {
Cookie[] cookies = request.getCookies();
if(cookies != null) {
for (int i = 0; i < cookies.length; i++) {
String cookieName = cookies[i].getName();
String cookieValue = cookies[i].getValue();
logger.info("UsersController - cookie - {} {}", cookieName, cookieValue);
}
}
HttpSession springsession = request.getSession(false);
if (springsession != null) {
logger.info("UsersController - login - session exists");
...
}
logger.info("UsersController - login - session does not exist");
...
}
Я не получаю куки в запросе клиента.
Принимая во внимание, что я пытаюсь выполнить несколько запросов входа от Почтальона, это работает.
Так почему это не работает из браузера?
Я попытался установить для свойства server.servlet.session.cookie.domain значение null, false, 127.0.0.1.Но ничего не помогло.
Как это можно решить?