View Full Version : [Java - autenticazione]
^TiGeRShArK^
16-03-2005, 16:05
Devo leggere dei file XML su un server sharepoint mediante un programmino scritto in Java.
Ho provato con diversi file XML su internet e tutto va a buon fine, ma il problema è ke quando mi collego al server SharePoint è necessario autenticarsi.....
come faccio ad inviare username e password dal programma in Java premesso ke la sintassi http://username:password@www.sito.com è stata deprecata e non funziona più????
non conosco sharepoint, usa la basic authentication?
in questo caso puoi farlo da java, se vuoi ti posto il codice.
^TiGeRShArK^
16-03-2005, 17:13
il problema è ke non ho idea ke autenticazione usi.....
Senza autenticazione mi dava un eccezione nella creazione dell'input stream....
poi ho provato con la classe authenticator scrivendo questo codice:
import java.net.*;
import java.io.*;
public class ProvaAccesso {
public ProvaAccesso() {
Authenticator.setDefault(new MyAuthenticator());
try {
// Create a URL for the desired page
URL url = new URL("http://ww3.gruppoblue.it/default.aspx");
// Read all the text returned by the server
BufferedReader in = new BufferedReader(new InputStreamReader(url.
openStream()));
String str;
while ((str = in.readLine()) != null) {
System.out.println(str);
}
in.close();
} catch (MalformedURLException e) {
} catch (IOException e) {
}
}
public static void main(String[] args) {
ProvaAccesso provaaccesso = new ProvaAccesso();
}
}
class MyAuthenticator extends Authenticator {
// This method is called when a password-protected URL is accessed
protected PasswordAuthentication getPasswordAuthentication() {
String password = "*********";
return new PasswordAuthentication("xxxxxxxxxxxx", password.toCharArray());
}
}
e non mi da errore, ma non mi visualizza niente....
mentre provando con www.google.it mi visualizzava senza problemi il codice html di index.html.......
Se hai qualke idea fammi sapere.....
Grazie x l'interessamento cmq ;)
^TiGeRShArK^
16-03-2005, 17:22
come RequestingScheme mi restituisce
ntlm
ha qualke significato??? :confused:
[EDIT]
Ho trovato queste informazioni su ntlm:
http://www.innovation.ch/java/ntlm.html
non mi dire ke mi devo implementare tutto a mano:cry::cry::cry::muro:
Il tuo codice sembra corretto, e Authenticator supporta NTLM.
chiama un printStackTrace() dentro i due catch, ho idea che passi di lì ;)
^TiGeRShArK^
16-03-2005, 18:04
DOH!
non c'avevo fatto caso dato ke il codice l'avevo copiato paro paro da un sito internet......
di solito qdo li scrivo io i try catch lo metto in automatico il printstacktrace e non ho notato ke lì non c'era....
cmq oramai provo domani mattina ke x stasera sono KO.....
tnx x l'aiuto ;)
^TiGeRShArK^
17-03-2005, 10:02
Ho provato a mettere il printstacktrace.... ecco il dump:
java.io.IOException: Error writing to server
at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:293)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:625)
at java.net.URL.openStream(URL.java:913)
at ProvaAccesso.<init>(ProvaAccesso.java:30)
at ProvaAccesso.main(ProvaAccesso.java:46)
l'errore viene generato dalla linea di codice
BufferedReader in = new BufferedReader(new InputStreamReader(url.
openStream()));
ho provato pure a settare l'username nel formato dominio\\user ma mi da sempre lo stesso problema.....
Sai per caso come fare a settare la proprietà http.auth.ntlm.domain????
non ho idea cos'altro posso fare..... :boh:
Authenticator supporta NTLM dalla versione 1.4.2 del jdk.
hai una versione abbastanza recente?
il client da cui sviluppi è windows o altro?
per motivi di licenza il supporto per NTLM esiste solo per il jdk su windows :muro: .
^TiGeRShArK^
17-03-2005, 10:16
java version 1.4.2_04-b05
cmq ora x sicurezza provo a configurare la 1.5 e vedo ke succede.....
^TiGeRShArK^
17-03-2005, 10:20
niente.....
stesso problema.... :boh:
si il computer è con windows xp.......non ho + idea di cosa fare....
Originariamente inviato da ^TiGeRShArK^
Sai per caso come fare a settare la proprietà http.auth.ntlm.domain????
da codice con System.setProperty("http.auth.ntlm.domain", valore)
ma sei sicuro di poter raggiungere quel sito a livello di rete? non e' che hai un proxy di mezzo per accedere a internet? se usi lo stesso codice (senza autenticazione) per scaricare una pagina di un altro sito funziona?
^TiGeRShArK^
17-03-2005, 10:23
ho provato anke settando questa proprietà...... :muro: sempre il solito prob.....
^TiGeRShArK^
17-03-2005, 10:25
ho provato a scaricare la pagina di google e funzionava....
ho anche provato a costrire un documento xml da un file su internet e non dava problemi.....
e inoltre quella pagina da internet explorer me la apre senza problemi....
ma ad esempio già con firefox crea un pò di casini....
a 'sto punto credo sia proprio sharepoint ke utilizza qualke sistema di autenticazione bastardo.......
^TiGeRShArK^
17-03-2005, 10:27
eventualmente sai se è possibile utilizzare le librerie .net framework tramite java in qualke modo? (ke ne so con native o con qualke altra cosa....)
Originariamente inviato da ^TiGeRShArK^
a 'sto punto credo sia proprio sharepoint ke utilizza qualke sistema di autenticazione bastardo.......
non so più che pensare :boh:
in teoria dovresti riuscire ad autenticarti, tra l'altro quell'eccezione non mi sembra dovuta a un accesso negato, va in crisi quando manda la richiesta, non quando la riceve
^TiGeRShArK^
17-03-2005, 11:18
grazie cmq....
ora provo ad installare visual studio .net e vedo se risolvo in qualke modo (sperando di non dover riscrivere tutto il programma da zero :muro: )
^TiGeRShArK^
17-03-2005, 22:10
sai x caso se J# può usare le stesse classi del java o se devo riscrivere tutto da zero??? :cry:
Originariamente inviato da ^TiGeRShArK^
sai x caso se J# può usare le stesse classi del java o se devo riscrivere tutto da zero??? :cry:
che diavolo è J#? :p
occhio che usare tool M$ con java non è mai stato una grande idea, ancora dai tempi remoti di J++ ;)
^TiGeRShArK^
18-03-2005, 13:27
finalmente ho trovato la soluzione ....
e senza usare visual studio! :p
praticamente SharePoint memorizza tutti i documenti all'interno di una tabella di un database Sql Server, qdi mi è bastato collegarmi al database e scaricarmi il binary content del file :D
se mi veniva prima mi risparmiavo una giornata di mal di testa! :muro:
grazie x l'aiuto e x il sostegno morale! ;)
pipozzolo
18-03-2005, 16:22
Originariamente inviato da ^TiGeRShArK^
sai x caso se J# può usare le stesse classi del java o se devo riscrivere tutto da zero??? :cry:
Se fai un copia incolla del codice funziona...
però occhio che eventuali librerie aggiuntive devono essere ricompilate... cioè class e jar non sono utilizzabili direttamente (es driver jdbc etc etc).
J# secondo me è solo un'esca per attrarre programmatori Java verso .NET... lascia perdere.
L'unico linguaggio decente se vuoi sviluppare in .NET a mio parere è il C#
^TiGeRShArK^
18-03-2005, 16:26
Infatti ho già risolto tutto con Java senza usare .NET ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.