Не удается получить доступ к файлам cookie в приложении на основе весеннего трикотажа

Я работаю над модулем реализации безопасности spring, и мне нужно установить и получить несколько файлов cookie. я пытался создать файлы cookie с помощью (javax.servlet.http.Cookie) и (javax.ws.rs.core.NewCookie), оба они отлично работают для настройки файлов cookie, я вижу файлы cookie в браузере, но когда я пытаюсь получить к ним доступ, он дает мне только JSESSIONID, мне нужно получить доступ другие файлы cookie также.

Вот как я устанавливаю файлы cookie, и в обоих случаях я успешно сохраняю файлы cookie в браузере:

Cookie cookieOne = new Cookie("SERVLETCOOKIE", "TESTING COOKIES");

NewCookie cookieTwo = new NewCookie("WSRSCOOKIE", "TESTING COOKIES");

когда я пытаюсь получить доступ к файлам cookie, я пробовал как @Autowired, так и @Context, как показано ниже, но я могу получить только файл cookie JSESSIONID.

@Autowired HttpServletRequest request;
and 
@Context HttpServletRequest request;

и я пытаюсь получить доступ к файлам cookie, как показано ниже:

Cookie[] cookieList = request.getCookies();

        if(cookieList !=null && cookieList.length >0){
            for(int i=0;i<cookieList.length;i++){
                Cookie cookie = cookieList[i];

                if(cookie.getName().equals("SERVLETCOOKIE")){
                    String value1 = cookie.getValue();
                    logger.info("cookie found. value ="+value1 );
                }
                if(cookie.getName().equals("WSRSCOOKIE")){
                        String value2 = cookie.getValue();
                        logger.info("cookie found. value ="+value2 );
                    }
                }
            }

Было бы здорово, если бы кто-нибудь помог мне указать, как я могу получить все остальные файлы cookie.


person Soumyaansh    schedule 07.08.2015    source источник
comment
Итак, все, что вы делаете, это просто создаете экземпляр объекта Cookie? Вы не добавляете их к фактическому ответу?   -  person Gimby    schedule 07.08.2015
comment
Я добавил объекты cookie в ответ, и именно так я вижу их в браузере. Дайте мне знать, если вы знаете, как я могу получить к ним доступ, на данный момент я могу получить доступ только к JSESSIONID, как я уже упоминал в своем вопросе. Спасибо   -  person Soumyaansh    schedule 07.08.2015
comment
спасибо, ребята, за ваши мнения и тем, кто действительно потратил время, чтобы ответить на него, в конечном итоге я решаю проблему, используя (javax.servlet.http.Cookie) и настраивая домен и путь к нему. Это мое наблюдение: в файле конфигурации безопасности, где мы устанавливаем шаблоны http для /oauth/token и URL для защиты наших API, я изменил сеанс создания с никогда на всегда, что позволило мне иметь файл cookie JSESSIONID, я просмотрел каждый его свойства и обнаружил, что я не устанавливал путь и домен в своих файлах cookie, после того, как я установил эти два свойства, я теперь могу получить доступ к своим файлам cookie.   -  person Soumyaansh    schedule 08.08.2015


Ответы (1)


Вопросу несколько лет. Однако сегодня у меня была аналогичная проблема. Решение было таково: если вы используете http-коннектор Apache, API-интерфейс jersey cookie, похоже, не поддерживается. Попробуйте получить файлы cookie через API Apache:

public static Cookie getCookie(final ClientRequestContext clientRequestContext, final String key){
    final CookieStore cookieStore = ApacheConnectorProvider.getCookieStore(clientRequestContext.getClient());
    return cookieStore.getCookies().stream().filter(c->c.getName().equals(key)).collect(CollectorUtil.singletonOrNullCollector());
}
person Andreas    schedule 27.09.2018