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

Zeka

Well-known member
01.09.2009
219
0
#1
Есть 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 код, что бы он эти самые "==" не терял?
 

Zeka

Well-known member
01.09.2009
219
0
#2
Вот млин...
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); 
}
}
 
13.03.2009
625
1
#3
Можно ли что-то где-то настроить что бы в конце LtpaToken небыло знаков "==".
Токен идет в base64. Длина кодированного base64 сообщения д.б. кратна 4. Символы равенства (==) используется как раз для выравнивания и не несут полезной нагрузки. Так что можно смело их дописывать самостоятельно :)
 

Zeka

Well-known member
01.09.2009
219
0
#4
Токен идет в base64. Длина кодированного base64 сообщения д.б. кратна 4. Символы равенства (==) используется как раз для выравнивания и не несут полезной нагрузки. Так что можно смело их дописывать самостоятельно :)
Ах вот оно как... :)