Angular 2 не передает JSESSIONID при последующих запросах

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

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

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

В какой-то момент присутствовал другой файл 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);

Ответ при входе

вкладка "Ответ входа в систему"

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

        // 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);

Последующий запрос на тестирование


person austinlhorn    schedule 09.11.2018    source источник


Ответы (1)


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

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

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

person pinei    schedule 10.11.2018