Problema Java exec

di il
1 risposte

Problema Java exec

Ciao a tutti,
ho il seguente problema: vorrei utilizzare il metodo runtime.exec per creare una richiesta di certificato x509 attraverso il comando openssl. L'esatto comando che vorrei useguire è il seguente:

openssl req -new -newkey rsa:1024 -nodes -keyout certs/certPrivateKey.pem -out certs/certRequest.pem -config certs/openssl.cnf -subj '/CN=.../emailAddress=.../O=.../OU=.../L=.../ST=.../C=...'

Il comando così com'è non viene eseguito, immagino che sia un problema di quoting dovuto alla presenza degli apici ma non sono riuscito a trovare una soluzione.

1 Risposte

  • Re: Problema Java exec

    Salve,
    ho risolto il problema nel seguente modo. Esistono due versioni del metodo exec:
    - exec(String command)
    - exec(String[] command)

    Utilizzando il primo metodo la stringa viene passata ad un oggetto StringTokenizer che terrà conto dei caratteri di spazio andando così a separare guppi di caratteri che dovrebbero essere invece considerati come un blocco unico. Nel mio caso ad esempio /CN= Tizio Caio/O= My Organitazion... verrebbe separata come:
    - /CN=
    - Tizio
    - Caio/O=
    - ecc...

    Per imporre una giusta parametrizzazione bisogna utilizzare la seconda versione del metodo exec nel seguente modo:
    
    ...
    String[] command = new String[size];
    
    command[0] = "openssl";
    command[1] = "req";
    ...
    command[size - 1] = "/CN=Tizio Caio/O=My Organization/...";
    
    runtime.exec(command);
    ...
    
    Spero che la cosa possa essere di aiuto ad altri sventurati che si trovano costretti a venire a capo di strani giochi di prestigio...

    A presto.

    eroZero
Devi accedere o registrarti per scrivere nel forum
1 risposte