SpNego: обнаружен дефектный токен - PullRequest
1 голос
/ 09 ноября 2011

У меня есть клиент Java, подключающийся к службе WCF. Эта служба настроена для запуска на хосте в качестве отдельного пользователя домена (т.е. не в качестве локальной службы или сетевой службы). Служба публикует userPrincipalName в своем WSDL.

Во время обмена токенами SpNego я получаю следующее исключение в клиенте

Defective token detected (Mechanism level: AP_REP token id does not match!)
This is the call stack:
    at sun.security.jgss.spnego.SpNegoContext.initSecContext(SpNegoContext.java:450)
    at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:230)
    at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:162)

Если я настраиваю службу WCF для запуска под учетной записью локальной системы, работает обмен токенами SpNego. Нужно ли изменять код для служб, не работающих под локальной системной учетной записью?

Update-1

После некоторой отладки, когда клиент C # подключился к службе WCF, я обнаружил, что клиент C # использует модифицированную версию протокола SpNego под названием MS-SPNG . Java 6 поддерживает это? При проверке токена появляется сообщение о неподдерживаемом механизме 1.2.840.113554.1.2.2.3.

1 Ответ

1 голос
/ 16 ноября 2011

Эти ссылки объясняют, что происходит. MS имеет расширение для протокола SpNego, которое включается, когда мы запускаем службу WCF как пользователь (то есть не как локальная служба и т. Д.). - это спецификация MS для нового протокола, а здесь - документ openjdk, в котором описаны временные решения.

...