Файлы cookie Spark Framework всегда нулевые - PullRequest
0 голосов
/ 12 декабря 2018

Это мой первый пост, поэтому я надеюсь, что я все делаю правильно.

Итак, моя проблема в том, что каждый раз, когда я устанавливаю куки в Spark Framework, он становится пустым, как только я хочу получить к нему доступ.Вот что получает мой браузер (IE / Edge) при отправке запроса:

Response
Это мой сервер Spark:

	public Server(int port, boolean skipPort) {
		isRunning = true;
		if(!skipPort)
			port(port);

		post("/login", new Route() {
			public Object handle(Request req, Response res) throws Exception {
				
				String body = req.body();
				
				JsonElement element = new JsonParser().parse(body);
				
				JsonObject object = element.getAsJsonObject();
				
				String password = object.get("password").getAsString();
				String account = object.get("account").getAsString();
				
				if(!ValueHelper.isEmtpy(password) && !ValueHelper.isEmtpy(account)) {
					res.cookie("Test", "Hallo");
					return isLoginValid(account, password);
				}else
					return false;
			}
		});
		
		get("/valid", new Route() {
			public Object handle(Request req, Response res) throws Exception {
				
				Main.instance().getLog().debug(req.cookie("Test"));
				
				return false;
			}
		});
		
		options("/*",
		        new Route() {
					public Object handle(Request request, Response response) throws Exception {
					    String accessControlRequestHeaders = request
					            .headers("Access-Control-Request-Headers");
					    if (accessControlRequestHeaders != null) {
					        response.header("Access-Control-Allow-Headers",
					                accessControlRequestHeaders);
					    }

					    String accessControlRequestMethod = request
					            .headers("Access-Control-Request-Method");
					    if (accessControlRequestMethod != null) {
					        response.header("Access-Control-Allow-Methods",
					                accessControlRequestMethod);
					    }
					    return "OK";
					}
				});
		before(new Filter() {
			public void handle(Request request, Response response) throws Exception {
				response.header("Access-Control-Allow-Origin", "*");
			}
		});
	}

Чтобы понять это: сначала я вызываю «/ login» из моего интерфейса (в данном случае React-App с Axios), а затем я вызываю «/ valid».В моей консоли я получаю это:

[16:48:47 INFO]: [Portal] null 

Но он должен получить значение cookie («Привет»).

Что я делаю не так?Или я что-то неправильно понял?

Спасибо всем, кто поможет ^^

1 Ответ

0 голосов
/ 14 декабря 2018

Я наконец нашел проблему после нескольких часов исследований.Это не было проблемой самой Спарк.В моем приложении я делаю запрос с помощью axios.Аксиос, очевидно, работает как Ajax или использует его.Для этого мне нужно добавить следующее в мою конфигурацию Axios для запросов:

withCredentials: true

И в моей конфигурации заголовка в ответе мне нужно добавить это:

response.header("Access-Control-Allow-Credentials", "true");

Теперь все работаеткак шарм

...