Je suis en train de développer un client http java avec apache httpcomponents 4.0.1. Ce client appelle la page "https://myHost/myPage". Cette page est protégée sur le serveur par un JNDIRealm avec une authentification par formulaire de connexion, donc quand j'essaye d'obtenir https://myHost/myPage je reçois une page de connexion. J'ai essayé de le contourner, sans succès, avec le code suivant:Http authentification avec apache httpcomponents
//I set my proxy
HttpHost proxy = new HttpHost("myProxyHost", myProxyPort);
//I add supported schemes
SchemeRegistry supportedSchemes = new SchemeRegistry();
supportedSchemes.register(new Scheme("http", PlainSocketFactory
.getSocketFactory(), 80));
supportedSchemes.register(new Scheme("https", SSLSocketFactory
.getSocketFactory(), 443));
// prepare parameters
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, "UTF-8");
HttpProtocolParams.setUseExpectContinue(params, true);
ClientConnectionManager ccm = new ThreadSafeClientConnManager(params,
supportedSchemes);
DefaultHttpClient httpclient = new DefaultHttpClient(ccm, params);
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,
proxy);
//I add my authentication information
httpclient.getCredentialsProvider().setCredentials(
new AuthScope("myHost/myPage", 443),
new UsernamePasswordCredentials("username", "password"));
HttpHost host = new HttpHost("myHost", 443, "https");
HttpGet req = new HttpGet("/myPage");
//show the page
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String rsp = httpClient.execute(host, req, responseHandler);
System.out.println(rsp);
Quand je lance ce code, je reçois toujours la page de connexion, pas myPage. Comment puis-je appliquer mes paramètres d'identification pour éviter ce formulaire de connexion?
Toute aide serait fantastique
Merci! Je vais essayer ça. – user299957