J'essaie d'utiliser l'API Apache HttpClient pour accéder aux pages du wiki Atlassian Confluence.Java 8: Authentification échouée d'Apache HttpClient
Voici mon code:
public class ConcfluenceTest{
public static void main(String[] args) {
String pageID = "107544635";
String hostName = "valid_hostname";
String hostScheme = "https";
String username = "verified_username";
String password = "verified_password";
int port = 443;
//set up the username/password authentication
BasicCredentialsProvider credsProvider = new BasicCredentialsProvider();
credsProvider.setCredentials(
new AuthScope(hostName, port, AuthScope.ANY_REALM, hostScheme),
new UsernamePasswordCredentials(username, password));
HttpClient client = HttpClientBuilder.create()
.setDefaultCredentialsProvider(credsProvider)
.build();
try {
HttpGet getRequest = new HttpGet("valid_url");
System.out.println(getRequest.toString());
HttpResponse response = client.execute(getRequest);
//Parse the response
BufferedReader rd = new BufferedReader(
new InputStreamReader(response.getEntity().getContent()));
StringBuffer result = new StringBuffer();
String line = "";
while ((line = rd.readLine()) != null) {
result.append(line);
}
System.out.println(result.toString());
} catch (UnsupportedEncodingException e) {
System.out.println(e.getStackTrace());
} catch (IOException e) {
System.out.println(e.getStackTrace());
}
}
}
Lorsque je tente d'exécuter ce code, la réponse est imprimé le code HTML de l'écran de connexion, ce qui signifie que l'authentification a échoué. Ce code renvoie cependant la réponse correcte lorsque je lui fournisse l'URL d'une page qui n'est pas limitée aux utilisateurs enregistrés (par exemple, les informations d'identification ne sont pas requises). J'ai aussi essayé toutes les permutations de port/schéma.
Quelqu'un peut-il me dire ce qu'il me manque?
Etes-vous sûr de l'API de Confluence est conçu pour fonctionner avec l'authentification de base? – thatidiotguy
oui. J'ai utilisé l'authentification de base avec JIRA, et les exemples d'Atlassian avec Confluence utilisent l'authentification de base. – scottyseus