Angular 2 не передает JSESSIONID при последующих запросах - PullRequest
0 голосов
/ 09 ноября 2018

Использование Angular 6.1.3.

В запросе на вход отправляется файл cookie JSESSIONID в ответе. Однако любой последующий запрос не включает этот файл cookie. При поиске вокруг наиболее упоминается использование использования withCredentials: true. Однако я использую это и все еще не успешно. Пробовал как на Chrome, так и на Firefox.

Любая помощь будет принята с благодарностью.

Одно время присутствовал другой файл cookie, и withCredentials вызывал включение этого файла cookie, но НЕ JSESSIONID. Очень расстраивает.

Я также пытался получить доступ к JSESSIONID вручную, чтобы включить его сам, хотя это не требуется. Однако даже «Наблюдать:« ответ »» не позволяет мне увидеть значение файла cookie JSESSIONID. Поэтому, если мне нужно идти по этому пути, пожалуйста, посоветуйте, как получить к нему доступ.

Есть ли ограничения по типу отправляемого запроса? Даже если я попытался выполнить GET безуспешно, когда ответ будет предоставлен, будет ли он работать с любым типом последующего запроса (т. Е. POST, PUT, PATCH)?

Требуется логин:

        const params: HttpParams = new HttpParams().set('token.name', username).append('token.value', password);
        const headers: HttpHeaders = new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded');

        return this.httpClient
            .post<any>(this.loginUrl, params, { headers: headers, params: params,  withCredentials: true })
            .map(adjudicator  => {
				return adjudicator.adjudicator as Adjudicator;
			})
            .catch(this.errorHelperService.handleError);

Ответ на вход в систему

логин Ответов вкладка Cookie

Последующий запрос:

        // test request
        const headers: HttpHeaders = new HttpHeaders().set('Content-Type', 'application/json');

        return this.httpClient
            .get<any>(this.configService.getManagerUrl()+'1/bada8257-e7d9-45d3-a8a1-83a67f863260',  { headers: headers, withCredentials: true })
            .map(response  => {
                return response.match as Match;
            })
            .catch(this.errorHelperService.handleError);

Запрос последующего тестирования

1 Ответ

0 голосов
/ 10 ноября 2018

Файл cookie содержит директиву "secure", и сайт, к которому вы пытаетесь получить доступ, не является безопасным.

Безопасный файл cookie отправляется на сервер только с зашифрованным запросом по протоколу HTTPS.

https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies

...