Autore Topic: System Property  (Letto 1833 volte)

Offline Fenex86

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: 0
    • Google+
    • davide-vallicella/43/325/74
    • Mostra profilo
    • Libretto universitario
  • Dispositivo Android:
    Emulatore - 2.3
  • Sistema operativo:
    W7 - Kubuntu 11.10
System Property
« il: 01 Novembre 2011, 20:49:19 CET »
0
Volevo sapere se in android si possono utilizzare le System Property in particolare:
Codice (Java): [Seleziona]
System.setProperty("javax.net.ssl.trustStore", "...");

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:System Property
« Risposta #1 il: 02 Novembre 2011, 09:39:35 CET »
0
Non vedo nessuna contro indicazione.

Offline Fenex86

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: 0
    • Google+
    • davide-vallicella/43/325/74
    • Mostra profilo
    • Libretto universitario
  • Dispositivo Android:
    Emulatore - 2.3
  • Sistema operativo:
    W7 - Kubuntu 11.10
Re:System Property
« Risposta #2 il: 02 Novembre 2011, 10:32:25 CET »
0
Ciao, grazie per la risposta;
Comunque anche se setto questa proprietà mi da sempre lo stesso errore ovvero

Codice: [Seleziona]
java.lang.Exception: Authentication Not trusted server certificate
invece se la setto in una normale app. java funziona e si connette.

ti dico solo che per salvare il file su sd (sviluppo su Android 2.2):

Codice (Java): [Seleziona]
private File sd = Environment.getExternalStorageDirectory();
private File f = new File(sd, "trust");
 .
 .
 .
OutputStream out = null;
try {
        out = new BufferedOutputStream(new FileOutputStream(f));
        trustStore.store(out, "changeit".toCharArray());
        System.out.println("Trust salvato!");
}catch (Exception e) {
        System.out.println("File non salvato: " e.getMessage());
} finally {
        if (out != null) {
                out.close();
        }
}

non so perché ma su android non mi funzia :(

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:System Property
« Risposta #3 il: 02 Novembre 2011, 10:59:06 CET »
0
Posta tutto il logcat.

Offline Fenex86

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: 0
    • Google+
    • davide-vallicella/43/325/74
    • Mostra profilo
    • Libretto universitario
  • Dispositivo Android:
    Emulatore - 2.3
  • Sistema operativo:
    W7 - Kubuntu 11.10
Re:System Property
« Risposta #4 il: 02 Novembre 2011, 11:35:58 CET »
0
ecco qua:

Codice: [Seleziona]
11-02 10:31:26.796: INFO/INFO(539): Login:
11-02 10:31:26.806: INFO/INFO(539): Install certificate.
11-02 10:31:28.776: INFO/global(539): Default buffer size used in BufferedOutputStream constructor. It would be better to be explicit if an 8k buffer is required.
11-02 10:31:30.116: INFO/System.out(539): Trust salvato!
11-02 10:31:32.228: INFO/INFO(539): -------------------------------------
11-02 10:31:32.228: INFO/INFO(539): Status code: 200
11-02 10:31:32.326: INFO/dalvikvm-heap(539): Grow heap (frag case) to 3.130MB for 148764-byte allocation
11-02 10:31:32.656: INFO/dalvikvm-heap(539): Grow heap (frag case) to 3.290MB for 112088-byte allocation
11-02 10:31:32.937: INFO/dalvikvm-heap(539): Grow heap (frag case) to 3.378MB for 168128-byte allocation
11-02 10:31:33.906: WARN/KeyCharacterMap(539): No keyboard for id 0
11-02 10:31:33.906: WARN/KeyCharacterMap(539): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
11-02 10:31:34.696: INFO/INFO(539): -------------------------------------
11-02 10:31:34.696: INFO/INFO(539): Status code: 200
11-02 10:31:35.936: WARN/InputManagerService(59): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@44efc670
11-02 10:31:35.966: WARN/System.err(539): javax.net.ssl.SSLException: Not trusted server certificate
11-02 10:31:36.086: WARN/System.err(539):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:371)
11-02 10:31:36.086: WARN/System.err(539):     at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:92)
11-02 10:31:36.096: WARN/System.err(539):     at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:381)
11-02 10:31:36.096: WARN/System.err(539):     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:164)
11-02 10:31:36.096: WARN/System.err(539):     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
11-02 10:31:36.096: WARN/System.err(539):     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
11-02 10:31:36.096: WARN/System.err(539):     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:348)
11-02 10:31:36.125: WARN/System.err(539):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
11-02 10:31:36.125: WARN/System.err(539):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
11-02 10:31:36.125: WARN/System.err(539):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
11-02 10:31:36.125: WARN/System.err(539):     at tessst.aa.Login.httpRequest(Login.java:226)
11-02 10:31:36.186: WARN/System.err(539):     at tessst.aa.Login.login(Login.java:168)
11-02 10:31:36.186: WARN/System.err(539):     at tessst.aa.Login$3.run(Login.java:326)
11-02 10:31:36.186: WARN/System.err(539):     at java.lang.Thread.run(Thread.java:1096)
11-02 10:31:36.186: WARN/System.err(539): Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: TrustAnchor for CertPath not found.
11-02 10:31:36.206: WARN/System.err(539):     at org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:168)
11-02 10:31:36.246: WARN/System.err(539):     at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:366)
11-02 10:31:36.246: WARN/System.err(539):     ... 13 more
11-02 10:31:36.246: WARN/System.err(539): Caused by: java.security.cert.CertPathValidatorException: TrustAnchor for CertPath not found.
11-02 10:31:36.246: WARN/System.err(539):     at org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi.engineValidate(PKIXCertPathValidatorSpi.java:149)
11-02 10:31:36.276: WARN/System.err(539):     at java.security.cert.CertPathValidator.validate(CertPathValidator.java:202)
11-02 10:31:36.276: WARN/System.err(539):     at org.apache.harmony.xnet.provider.jsse.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:164)
11-02 10:31:36.276: WARN/System.err(539):     ... 14 more


Quei status code 200 significano che prima di connettermi al sito https://www.ssol.univr.it/main?ent=login che è quello che mi sta danno problemi, mi connetto ad un'altro server sempre della mia facoltà che utilizza lo stesso certificato

Offline Fenex86

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: 0
    • Google+
    • davide-vallicella/43/325/74
    • Mostra profilo
    • Libretto universitario
  • Dispositivo Android:
    Emulatore - 2.3
  • Sistema operativo:
    W7 - Kubuntu 11.10
Re:System Property
« Risposta #5 il: 02 Novembre 2011, 12:00:40 CET »
0
Mentre se eseguo questo codice come normale classe java si connette correttamente:

Codice (Java): [Seleziona]
package javaapplication1;

import java.io.*;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

public class ProvaActivity {

    public static void main(String[] args) throws Exception {
        System.setProperty("javax.net.ssl.trustStore", "trust");

        // ovviamente al posto degli * ci sono i dati reali per la connessione
        String target = "https://www.ssol.univr.it/main?ent=login&username=id0*****&password=*******";


        DefaultHttpClient client = new DefaultHttpClient();

        HttpGet httpget = new HttpGet(target);

        System.out.println("executing request" + httpget.getRequestLine());
        HttpResponse response = client.execute(httpget);
        HttpEntity entity = response.getEntity();

        System.out.println("----------------------------------------");
        System.out.println(response.getStatusLine());

        if (entity != null) {
            System.out.println("Response content length: " + entity.getContentLength());
            BufferedReader in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));

            StringBuilder sb = new StringBuilder("");
            String line = "";
            String NL = System.getProperty("line.separator");
            while ((line = in.readLine()) != null) {
                sb.append(line).append(NL);
            }
            in.close();

            String result = sb.toString();
            System.out.println(result);

        }
        if (entity != null) {
            entity.consumeContent();
        }

        client.getConnectionManager().shutdown();

    }
}

il file trust l'ho messo in allegato.
Adesso mi piacerebbe sapere perché  con android non funge :(

Offline Fenex86

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: 0
    • Google+
    • davide-vallicella/43/325/74
    • Mostra profilo
    • Libretto universitario
  • Dispositivo Android:
    Emulatore - 2.3
  • Sistema operativo:
    W7 - Kubuntu 11.10
Re:System Property
« Risposta #6 il: 02 Novembre 2011, 13:41:12 CET »
0
c'è nessuno che ne sappia qualcosa?

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:System Property
« Risposta #7 il: 02 Novembre 2011, 13:48:58 CET »
0

Offline Fenex86

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: 0
    • Google+
    • davide-vallicella/43/325/74
    • Mostra profilo
    • Libretto universitario
  • Dispositivo Android:
    Emulatore - 2.3
  • Sistema operativo:
    W7 - Kubuntu 11.10
Re:System Property
« Risposta #8 il: 02 Novembre 2011, 14:08:18 CET »
0
Si google l'ho gia girato in lungo e in largo...altrimenti non mi sarei rivolto a voi...le ho già provate tutte e pensavo che qui qualcuno mi potesse aiutare

Offline Fenex86

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: 0
    • Google+
    • davide-vallicella/43/325/74
    • Mostra profilo
    • Libretto universitario
  • Dispositivo Android:
    Emulatore - 2.3
  • Sistema operativo:
    W7 - Kubuntu 11.10
Re:System Property
« Risposta #9 il: 02 Novembre 2011, 14:13:28 CET »
0
e poi non sono l'unico a cui le soluzioni da voi proposte in vari topic non funzionano http://www.anddev.it/index.php/topic,1762.msg17169.html#msg17169 ...se la risposta la trovavo su google che senso ha iscriversi a questo forum? :-\

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:System Property
« Risposta #10 il: 02 Novembre 2011, 14:20:39 CET »
0
Si google l'ho gia girato in lungo e in largo...altrimenti non mi sarei rivolto a voi...le ho già provate tutte e pensavo che qui qualcuno mi potesse aiutare

Ma hai provato questo codice: ssl - Accepting a certificate for HTTPs on Android - Stack Overflow

Offline Fenex86

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: 0
    • Google+
    • davide-vallicella/43/325/74
    • Mostra profilo
    • Libretto universitario
  • Dispositivo Android:
    Emulatore - 2.3
  • Sistema operativo:
    W7 - Kubuntu 11.10
Re:System Property
« Risposta #11 il: 02 Novembre 2011, 14:37:40 CET »
0
si!...sono stufo di vederlo quel codice ti ho detto che se setto la proprietà
Codice (Java): [Seleziona]
System.setProperty("javax.net.ssl.trustStore", "trust"); in una normale app java funzia ma in android no qualcuno sa il perchè?
Hai detto che non c'erano contro indicazioni ma mi pare che nessuno utilizza questa proprietà almeno dopo aver cercato per 2gg su Google

Offline Fenex86

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: 0
    • Google+
    • davide-vallicella/43/325/74
    • Mostra profilo
    • Libretto universitario
  • Dispositivo Android:
    Emulatore - 2.3
  • Sistema operativo:
    W7 - Kubuntu 11.10
Re:System Property
« Risposta #12 il: 02 Novembre 2011, 14:46:26 CET »
0
Scusate se sembro un po scontroso ma se mi linkate Google un po mi inalbero.

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:System Property
« Risposta #13 il: 02 Novembre 2011, 15:24:11 CET »
+1
si!...sono stufo di vederlo quel codice ti ho detto che se setto la proprietà
Codice (Java): [Seleziona]
System.setProperty("javax.net.ssl.trustStore", "trust"); in una normale app java funzia ma in android no qualcuno sa il perchè?
Hai detto che non c'erano contro indicazioni ma mi pare che nessuno utilizza questa proprietà almeno dopo aver cercato per 2gg su Google

Per prima cosa calma.

Ho detto che non ci sono controindicazioni nell'utilizzo delle System Property, ma nel primo post non si capiva per quale motivo le volevi utilizzare. Sicuramente puoi usare le system property come vuoi, ma non è detto che il client che usi (nel tuo caso HttpClient la usa o meno. Quello di android, ad esempio non usa quella proprietà e quindi per il caso specifico di HttpClient impostarla o meno non importa.

Il link che ti ho dato NON usa quella proprietà, quindi il fatto che tu dica che sei stufo di vedere quel codice ha poco senso visto che quel codice NON contiene quella proprietà. Molto più probabilmente sei stufo di leggere o aprire i post che ti vengono linkati più che di trovare una soluzione al tuo problema.

Prova quel codice che dovrebbe funzionarti e se non ti funziona prova questo: http://stackoverflow.com/questions/2642777/trusting-all-certificates-using-httpclient-over-https/6378872#6378872 che fa il trust di tutti i certificati.

Offline ROS

  • Utente normale
  • ***
  • Post: 196
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 10.04
Re:System Property
« Risposta #14 il: 02 Novembre 2011, 15:24:58 CET »
+1
Se non trovi una soluzione prova a rivolgerti su #android-dev su freenode: li' c'e' gente preparatissima, magari qualcuno ti sapra' aiutare :)