OpenSSO и способы шифрования cookie

Сколько же способов представления authentication token в cookie поддерживает OpenSSO? Еще до 22:13 25/06/2010 я наивно полагал, что два:
  • простое представление
  • AQIC5wM2LY4SfcwBMwqu71bnyaDxA04wXL3kY7oyBfXbiz8=@AAJTSQACMDE=#
  • кодированное представление 
  • AQIC5wM2LY4SfcwBMwqu71bnyaDxA04wXL3kY7oyBfXbiz8%3D%40AAJTSQACMDE%3D%23

И вот на одном из серверов OpenSSO начал нагло входить в dead-loop:
  1. приложение проверяет наличие куки
  2. ее не находить
  3. пересылает на страничку OpenSSO для аутентификации
  4. аутентификация проходит
  5. OpenSSO возвращает пользователя на страничку приложения
  6. приложение пытается авторизовать пользователя в OpenSSO
  7. OpenSSO нагло отвечает, что authentication token, извлеченный из cookie не валиден
  8. мы благополучно возвращаемся к пункту 3.
Путем включения логов OpenSSO в режим отладки удалось выяснить, что камнем преткновения является символ пробела, который OpenSSO по каким то соображениям перестал кодировать в %20, а начал кодировать как +. То есть, по сути эта редиска перепутала два формата кодирования urlencode и form-urlencoded. И кодировала в form-urlencoded, при этом тупо продолжая ожидать urlencode. Естественно первое, что пришло на ум поиграться с настройками, включить-выключить, почистить кеши, ан нет, "врагу не сдается наш гордый варяг".
И вот методом глубинного гугления было установлено, что есть еще третий формат кодирования, поддерживаемый OpenSSO, для включения которого надо всего лишь залезть в Configuration > Servers and Sites > Default Server Settings > Advanced и переключить опцию com.iplanet.am.cookie.c66Encode в true.
Третий формат не имеет никакого отношения к HTTP стандартам и заменяет пробел на нижнее подчеркивание (AQIC5wM2LY4SfcxiYQOU_M758mIBoksMWGHC-r-sgA_z5lM.*AAJTSQACMDE.*). Работает вроде пока на ура. Вот такие пироги с куками.