Windows'da çalışan bir Java 6 istemcisinin SPNEGO kimlik doğrulama protokolünü uygulayan bir Microsoft sunucusuna erişirken NTLM üzerinden kimlik doğrulaması yapıp yapamayacağını bilen var mı?HTTP Windows üzerinde bir Java SE6 istemcisinden NTLM aracılığıyla "Anlaşma" kimlik doğrulaması
Anlayışım, Windows üzerinde çalışan Java 6'nın SPNEGO için yerleşik desteğe sahip olması, ancak Java uygulamasının, kerberos kimlik doğrulaması mümkün olmadığında NTLM kimlik doğrulamasını denemesi olmadığı anlaşılıyor. görüş: Güneş docs sağlanan Authenticator örnek WWW-Authenticate gönderen sunucuya yanıt olarak bir 401 Yetkisiz hata ile başarısız olur. İşte
test ortamında tanımıdır:Hedef Sunucu:
- , Windows 2008 R2 tek başına sunucu
- Microsoft SOAP hizmeti WCF kullanılarak uygulanan (AD etki alanının parçası olmayan)
- WCF, SPNEGO kimlik doğrulaması için yapılandırılmıştır (kerberos ve NTLM)
- WCF sunucusu, reconfi olamaz diğer kimlik doğrulama modları :(desteklemek için gured
Müşteri Makinası:
- Windows 7 64-bit bağımsız iş istasyonu (bir etki alanının parçası olmayan) Güneş SPNEGO örneğini çalıştıran
- Java SE6 istemci
Nihai hedef, WCF sunucusunda SOAP servislerini çağırmak için Apache CXF 2.4.0 kullanmaktır. CXF ve SOAP'ın karmaşıklıklarını eklemeden önce, kimlik doğrulama sorunlarını çözmek için basit bir Java test uygulaması kullanarak WSDL'yi sunucudan almaya çalışıyorum.
FWIW - WCF sunucusuna Windows sunucusunun yerel Administrator oturum açma bilgilerini kullanarak IE'den erişebilirim. Ayrıca herhangi bir özel yetkilendirme yapılandırması olmadan bir Delphi XE SOAP istemcisi oluşturabildim. Delphi SOAP istemcisi, WinInet'i başlık altında kullanır.
Sorununuzu çözdünüz mü? –
@David Brossard - Evet, işleri hallettik. Çözümümüzle ilgili uyarı, bir hizmet hesabı kullanılmadığı sürece Windows hizmet olarak çalışırken yerel Java auth işlevselliğinin sorun yaşadığıydı. Daha yakın zamanda, NTLMv2 auth desteğini çalıştıran Apache HTTP istemcisini kullanmaya başladık. Çalışmak için biraz incelik aldı, ancak yoğun üretimde güvenilir olduğunu kanıtladı. –
Teşekkürler! O zaman Apache müşterisine bakacağım. Benim tomcat windows hizmeti olarak çalışıyor yani iyi –