2015-08-11 29 views
8

Sto provando a rendere la connessione di autenticazione Kerberos a un URL wsdl del servizio SOAP. Sono in grado di stabilire correttamente la connessione ed effettuare chiamate di servizio. Dopo aver avviato il mio server, sono in grado di effettuare una chiamata di assistenza riuscita almeno una volta. Tuttavia, dopo poche richieste (1 o più), ottengo improvvisamente un errore di token non valido. Una volta ricevuto l'errore, le chiamate future non funzionano e l'errore persiste.Errore Kerberos: GSSHeader non ha trovato il tag corretto

Se riavvio il server, la chiamata di servizio funziona ancora una volta. E sopra il ciclo continua.

Non riesco a capire perché improvvisamente il token non è valido, sebbene abbia funzionato prima. E il riavvio del server rende nuovamente valido il token.

Ecco stacktrace errore:

Caused by: GSSException: Defective token detected (Mechanism level: GSSHeader did not find the right tag) 
     at sun.security.jgss.GSSHeader.<init>(GSSHeader.java:97) 
     at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:237) 
     at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:179) 
+0

Hai valutato la mia risposta? –

+0

sì, ho fatto. Ma non fornisce alcuna informazione significativa. Il mio problema è perché il riavvio del server sta rendendo nuovamente valido il token. – Pranalee

risposta

0

Impossibile trovare la causa principale del perché il token non è valido. Ma ecco come faccio a risolvere questo problema.

La mia autenticazione funzionava per la prima volta dopo il riavvio del mio server e il bean è stato caricato di nuovo nel contesto. Così ho cambiato l'ambito del mio bean spring in prototype in modo che ogni volta venga creato un nuovo bean proxy.

2

Senza vedere il valore di base 64 o un dump esadecimale, suppongo che il client invia un tipo NTLM 1 gettone e Java non supporta NTLM.

Problemi correlati