6

ドメインユーザーアカウントのクレデンシャルを渡して、Javaで残りのWebサービスを利用する必要があります。

今、私は古典的なaspでそれをやっています


set xmlHttp = server.createObject( "msxml2.serverxmlhttp" )
xmlHttp.open method, url, false, domain & "\" & user, password
xmlHttp.send body
out = xmlHttp.responseText
set xmlHttp = nothing

とasp.netで



HttpWebRequest request = (HttpWebRequest) WebRequest.Create( url );

request.Credentials = new NetworkCredential(user, password, domain);

request.Method = WebRequestMethods.Http.Get

HttpWebResponse response = (HttpWebResponse) request.GetResponse();

StreamReader outStream = new StreamReader( response.GetResponseStream(), Encoding.UTF8) ;

output = outStream.ReadToEnd();

Javaでこれをどのように達成できますか?現在ログインしているユーザーの資格情報を使用していないことを考慮して、ドメインアカウントを指定しています(パスワードを持っています)

従来のaspやasp.netと同じくらい簡単だと言ってください。

4

3 に答える 3

0

java.net.URLStreamHandler と java.net.URL の互換性のあるソリューションは、com.intersult.net.http.NtlmHandler です。

NtlmHandler handler = new NtlmHandler();
handler.setUsername("domain\\username");
handler.setPassword("password");
URL url = new URL(null, urlString, handler);
URLConnection connection = url.openConnection();

url.openConnection(proxy) 内で java.net.Proxy を使用することもできます。

Maven 依存関係を使用します。

    <dependency>
        <groupId>com.intersult</groupId>
        <artifactId>http</artifactId>
        <version>1.1</version>
    </dependency>
于 2012-08-07T16:23:07.557 に答える
-2

SPNEGO HTTP サーブレット フィルター プロジェクトの SpnegoHttpURLConnection クラスを見てください。このプロジェクトにはいくつかの例もあります。

このプロジェクトには、例で行っていることをほぼ実行するクライアント ライブラリがあります。

javadoc からこの例を見てください...

 public static void main(final String[] args) throws Exception {
     final String creds = "dfelix:myp@s5";

     final String token = Base64.encode(creds.getBytes());

     URL url = new URL("http://medusa:8080/index.jsp");

     HttpURLConnection conn = (HttpURLConnection) url.openConnection();

     conn.setRequestProperty(Constants.AUTHZ_HEADER
             , Constants.BASIC_HEADER + " " + token);

     conn.connect();

     System.out.println("Response Code:" + conn.getResponseCode());
 }
于 2009-11-05T10:14:57.093 に答える