• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

  • Автор темы Zeka
  • Дата начала
Z

Zeka

Есть Domino (domino.mycompany.org) и Tomcat (tomcat.mycompany.org).
Юзер кликает по линку в xPages в результате чего открывается сервлетик на томкате.
Т.к. они в одном домене (mycompany.org), то сервлету шлётся куки LtpaToken.

В сервлете код:
Код:
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 код, что бы он эти самые "==" не терял?
 
Z

Zeka

Вот млин...
request.getHeader("Cookie") возвращает LtpaToken=AAECAzUwMkE0ODRBNTAyQUM2REFPcGVyYXRvcjHI6+IEN1NoeobM2r6E/hKTNd+ENg==
а вот request.getCookies()[0] уже возвращает AAECAzUwMkE0ODRBNTAyQUM2REFPcGVyYXRvcjHI6+IEN1NoeobM2r6E/hKTNd+ENg

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

Если кому-нибудь, когда-нибудь понадобится:
Код:
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); 
}
}
 
T

turumbay

Можно ли что-то где-то настроить что бы в конце LtpaToken небыло знаков "==".
Токен идет в base64. Длина кодированного base64 сообщения д.б. кратна 4. Символы равенства (==) используется как раз для выравнивания и не несут полезной нагрузки. Так что можно смело их дописывать самостоятельно :)
 
Z

Zeka

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!