В Ltpatoken Обрезаются "=="

Тема в разделе "Lotus - Xpages", создана пользователем Zeka, 14 авг 2012.

  1. Zeka

    Zeka Well-Known Member

    Регистрация:
    1 сен 2009
    Сообщения:
    219
    Симпатии:
    0
    Есть Domino (domino.mycompany.org) и Tomcat (tomcat.mycompany.org).
    Юзер кликает по линку в xPages в результате чего открывается сервлетик на томкате.
    Т.к. они в одном домене (mycompany.org), то сервлету шлётся куки LtpaToken.

    В сервлете код:
    Код (Text):
    for (int i = 0; i < request.getCookies().length; i++) {
    Cookie cookie = request.getCookies()[i];
    System.out.println("Cookie: " + cookie.getName() + "=" + cookie.getValue());
    }
    Проблема
    Иногда LtpaToken заканчивается двумя знаками равенства ("AAECAzUwMkEzMDY5NTAyQUFFRjlPcGVyYXRvcjG87ocefdLcsXj4ffiToaDz7y8/ZA==").
    В таком случае cookie.getValue() эти знаки обрезает. Т.е. возвращает не полный LtpaToken, а без последних двух символов "==". (FireBag'ом проверял. Куки отсылается с "==")

    Вопрос:
    Можно ли что-то где-то настроить что бы в конце LtpaToken небыло знаков "==".
    Или как поправить java код, что бы он эти самые "==" не терял?
     
  2. Zeka

    Zeka Well-Known Member

    Регистрация:
    1 сен 2009
    Сообщения:
    219
    Симпатии:
    0
    Вот млин...
    request.getHeader("Cookie") возвращает LtpaToken=AAECAzUwMkE0ODRBNTAyQUM2REFPcGVyYXRvcjHI6+IEN1NoeobM2r6E/hKTNd+ENg==
    а вот request.getCookies()[0] уже возвращает AAECAzUwMkE0ODRBNTAyQUM2REFPcGVyYXRvcjHI6+IEN1NoeobM2r6E/hKTNd+ENg

    Видимо придётся Header парсить вручную?

    Если кому-нибудь, когда-нибудь понадобится:
    Код (Text):
    String[] a = request.getHeader("Cookie").split(";");
    String ltpaToken = "";
    for(String s: a){
    s = s.trim();
    if(s.startsWith("LtpaToken")){
    ltpaToken = s.substring(s.indexOf('=')+1);
    }
    }
     
  3. turumbay

    Регистрация:
    13 мар 2009
    Сообщения:
    625
    Симпатии:
    2
    Токен идет в base64. Длина кодированного base64 сообщения д.б. кратна 4. Символы равенства (==) используется как раз для выравнивания и не несут полезной нагрузки. Так что можно смело их дописывать самостоятельно :)
     
  4. Zeka

    Zeka Well-Known Member

    Регистрация:
    1 сен 2009
    Сообщения:
    219
    Симпатии:
    0
    Ах вот оно как... :)
     
Загрузка...
Похожие Темы - Ltpatoken Обрезаются
  1. maliy
    Ответов:
    18
    Просмотров:
    7.726
  2. vvlad
    Ответов:
    2
    Просмотров:
    2.566

Поделиться этой страницей