mod_auth_tkt - реализация Java - PullRequest
       17

mod_auth_tkt - реализация Java

0 голосов
/ 02 февраля 2012

Кто-нибудь реализовал mod_auth_tkt генерацию файлов cookie с использованием Java?

Я застрял на том, как сгенерировать iptstamp (это можно сделать в PHP с помощью функции pack) и hextimestamp в Java.

Алгоритм генерации куки ниже:

cookie := digest + hextimestamp + user_id + '!' + token_list + '!' + user_data

digest := MD5(digest0 + key)

digest0 := MD5(iptstamp + key + user_id + '\0' + token_list + '\0' + user_data)
  • iptstamp - это байтовый массив длиной 8 байтов, байты 0-3 заполняются IP-адресом клиента в виде двоичного числа в сетевом порядке байтов, байты 4-7 заполняются меткой времени в виде двоичного числа в сети порядок байтов.

  • hextimestamp - это шестнадцатеричное число длиной 8 символов, выражающее метку времени, используемую в iptstamp.

  • token_list - необязательный список токенов доступа, разделенных запятыми, для этого пользователя.
    Этот список проверяется, если TKTAuthToken установлен для определенной области.

  • user_data необязательно

1 Ответ

1 голос
/ 06 сентября 2012

Просто преобразуйте IP-адрес в 4 байта и добавьте метку времени.

iptstamp = ip_chars + ts_chars

http://code.cmlenz.net/diva/changeset/173/branches http://www.mail-archive.com/modauthtkt-users@lists.sourceforge.net/msg00003.html

Использование следующего для получения порядка сетевых байтов.

ByteBuffer bb = ByteBuffer.allocate(4096);
bb.order(ByteOrder.BIG_ENDIAN);

См

Сетевой заказ короткий (Java)

...