Печенье Angular Spring Boot на локальном хосте - PullRequest
0 голосов
/ 21 мая 2019

У меня Angular 7 в качестве внешнего интерфейса и Spring Boot в качестве внутреннего.

Угловое приложение, размещенное на localhost: 4200, и приложение Spring, размещенное на localhost: 8080

При входе в систему я сохраняю весеннюю сессию и возвращаю cookie.Когда пользователь снова пытается войти в систему, я сначала проверяю, существует ли сеанс.

Для этого требуется cookie от клиента.Но я не получаю куки в запросе клиента.

В инструментах разработчика Chrome на вкладке «Приложение» можно увидеть следующие файлы cookie:

enter image description here

В приложении 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.Но ничего не помогло.

Как это можно решить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...