Monday, January 16, 2012

Autenticazione NTLM con Axis 1.x

Affrontare lo "spinoso" problema della WS-I (web services interoperability) non è facile, specie con un attrezzo nato prima delle linee guida al riguardo. Quando ci si deve collegare con un ws sviluppato in .NET e pubblicato su IIS, molto probabilmente verrà applicata l'autenticazione NTLM e se dobbiamo collegarci attraverso le classi client java prodotte con Axis 1.x incontriamo problemi dovuti al fatto che il protocollo di autenticazione funziona un pò diversamente dagli Application Server cui siamo abituati nel mondo java.
Qui ho trovato uno dei migliori tutorial che si basa sulle esperienze di un altro blogger.

Sostanzialmente la raccomandazione è di utilizzare le commons-httpclient-3.1 per utilizzare il meccanismo di autenticazione NTLM invece di quelle utilizzate normalmente nel mondo java (p.es. BASIC).

Successivamente si dovrà utilizzare il costruttore della classe client
ServiceLocator(org.apache.axis.EngineConfiguration config)

e fare un piccolo metodo nel quale si prepara un SOAP header customizzato in modo tale da modificare il trasporto SOAP di Axis con la classe delle commons-httpclient adatta (org.apache.axis.transport.http.CommonsHTTPSender). I particolari al link citato.

Da provare. Funziona perfettamente.
Stay tuned!

No comments: