Je me demandais si l'un d'entre vous savait comment se déconnecter de l'authentification de base (BA) en utilisant la classe java.net.Authenticator. Je sais que BA n'a pas de méthode de déconnexion, et que vous devez fermer et rouvrir le navigateur pour mettre fin à la session. La question est, comment «fermez-vous et rouvrez-vous le navigateur» dans le code java? C'est-à-dire, je me connecte via Java, pas un Borwser, alors comment faire pour que la JVM se désauthentifie elle-même?Se déconnecter avec java.net.Authenticator
Contexte: J'écris une application pour poster des tweets à plusieurs comptes Twitter en utilisant BA. Je peux utiliser java.net. * Pour publier le tweet pour un compte (et peut voir qu'il appelle ma classe d'authentification) mais quand j'essaye de publier le tweet pour le second, je ne peux pas voir un second appel à l'authentificateur , et le tweet est renvoyé au premier compte.
Est-il possible d'authentifier l'Authenticator, ou est-ce une impasse? Si oui, je peux juste finir par utiliser OAuth à la place.
Un grand merci d'avance pour toute idée que vous pouvez offrir!
Shane
static class MyAuthenticator extends Authenticator {
private String username, password;
public MyAuthenticator(String user, String pass) {
username = user;
password = pass;
}
protected PasswordAuthentication getPasswordAuthentication() {
System.out.println("Requesting Host : " + getRequestingHost());
System.out.println("Requesting Scheme : " + getRequestingScheme());
System.out.println("Requesting Site : " + getRequestingSite());
return new PasswordAuthentication(username, password.toCharArray());
}
}
bip public void (AutoTwitterAccount acc, bip String) { Authenticator.setDefault (null);
Authenticator.setDefault(new MyAuthenticator(acc.getUserName(), acc.getPassword()));
try {
/* First login the session and fire off tweet*/
URL url = new URL(AutoTweeter.TWEET_URL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setRequestProperty("User-Agent", "Mozilla/4.0");
conn.setRequestProperty("User-Agent", AGENT);
conn.setRequestProperty("Content-Type", TYPE);
conn.setRequestProperty("Content-Length", "" + tweet.length());
...fire off tweet....
conn.disconnect();
Merci encore une fois!
http://www.cafesoft.com/products/cams/tomcat-security.html (où il est dit « Une fois que vous entrez .. ") – Bozho