PDA

View Full Version : [JAVA] visitare url riservati


orpheus
29-08-2007, 10:35
Ciao,

in pratica ho un programma java che deve visitare degli url web di cui devo scaricare il contenuto che necessitano di autentificazione, come posso fare?
Le pagine in questione reindizzano a una pagina con un form di login se non ci si è precedentemente autenficati al sito.

Ho cercato in rete, ma questo non ha funzionato


String encoding = new sun.misc.BASE64Encoder().encode ("password".getBytes());
URLConnection con = url.openConnection();
con.setRequestProperty ("Authorization", "Basic " + encoding);


Qualcuno sa darmi qualche suggerimento ?

andbin
29-08-2007, 12:55
in pratica ho un programma java che deve visitare degli url web di cui devo scaricare il contenuto che necessitano di autentificazione, come posso fare?
Le pagine in questione reindizzano a una pagina con un form di login se non ci si è precedentemente autenficati al sito.

Ho cercato in rete, ma questo non ha funzionato


String encoding = new sun.misc.BASE64Encoder().encode ("password".getBytes());
URLConnection con = url.openConnection();
con.setRequestProperty ("Authorization", "Basic " + encoding);


Qualcuno sa darmi qualche suggerimento ?Innanzitutto c'è da precisare che una cosa è un "basic authentication" (vedi <qui> (http://en.wikipedia.org/wiki/Basic_access_authentication)) che è gestito a livello di protocollo HTTP e un'altra cosa è una autenticazione gestita tramita una pagina html che contiene un banale form i cui dati sono poi inviati ad un url tramite un "post". Sono due cose ben diverse.

Quindi, giusto per iniziare, specifica magari il sito o descrivi cosa/come viene richiesto per l'autenticazione.

orpheus
29-08-2007, 16:00
Hai assolutamente ragione, ho sbagliato. Non so perché mi ero fissato con l'autentificazione Basic.

Allora in pratica c'è una pagina con un form di login per autenticarsi.
Io dovrei riuscire a simulare il comportamento del browser ossia autentificarmi (cosa fatta) e poi mantenere l'autentificazione per visitare altre pagine di cui scaricare il contenuto.

Ora l'applicazione che gira sul server è fatta in coldfusion e non riesco a capire come mantenere l'autentificazione fatta simulando la submit in POST del form di login.

Ho provato a vedere se negli header http mi torna un ID di sessione o quant'altro ma l'unica cosa che vedo è
un CFID= xxxxxx CFTOKEN=xxx usati da coldfusion per autentificare la sessione.
Il problema è che non so come settarli nellamia connessione, ho provato con


con.setRequestProperty("CFID", "CFID=xxx");
con.setRequestProperty("CFTOKEN", "CFTOKEN=xxx");
con.setRequestProperty("URLTOKEN", "CFID=xxx&CFID=xxx");


provando in varie combinazioni ma niente mi torna sempre un codice 400 di http

spero ora il problema sia un attimo più chiaro

andbin
29-08-2007, 21:31
C'è un mio esempio per fare un semplice POST in Java in <questo> (http://www.hwupgrade.it/forum/showthread.php?t=1330750) thread, magari ti può essere utile.
Per la gestione dei cookie, è un altro discorso.

orpheus
30-08-2007, 08:58
Il problema è che io sono bloccato sull'altro discorso...qualcuno mi sa aiutare in qualche modo

orpheus
31-08-2007, 10:31
uppete..coldfusion mi sta uccidendo :help: