ctt-gob-es / clienteafirma

Cliente @firma
http://administracionelectronica.gob.es/ctt/clienteafirma
246 stars 120 forks source link

fix: null pointer exception si no se tiene permiso para leer directorio de bibliotecas #367

Open nilp0inter opened 8 months ago

nilp0inter commented 8 months ago

En linux, si alguno de los directorios donde se busca firefox es innacesible por falta de permisos se eleva la siguiente excepción:

INFO: Inicializamos el almacen de tipo: NSS
Exception in thread "main" java.lang.ExceptionInInitializerError
        at es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities.getSystemNSSLibDir(MozillaKeyStoreUtilities.java:252)
        at es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilities.loadNSS(MozillaKeyStoreUtilities.java:706)
        at es.gob.afirma.keystores.mozilla.NssKeyStoreManager.getNssProvider(NssKeyStoreManager.java:122)
        at es.gob.afirma.keystores.mozilla.NssKeyStoreManager.init(NssKeyStoreManager.java:59)
        at es.gob.afirma.keystores.mozilla.MozillaUnifiedKeyStoreManager.init(MozillaUnifiedKeyStoreManager.java:77)
        at es.gob.afirma.keystores.AOKeyStoreManagerFactory.getNssKeyStoreManager(AOKeyStoreManagerFactory.java:511)
        at es.gob.afirma.keystores.AOKeyStoreManagerFactory.getMozillaUnifiedKeyStoreManager(AOKeyStoreManagerFactory.java:542)
        at es.gob.afirma.keystores.AOKeyStoreManagerFactory.getAOKeyStoreManager(AOKeyStoreManagerFactory.java:133)
        at es.gob.afirma.standalone.SimpleAfirma.main(SimpleAfirma.java:739)
Caused by: java.lang.NullPointerException: Cannot read the array length because "<local4>" is null
        at es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilitiesUnix.searchLastFirefoxVersion(MozillaKeyStoreUtilitiesUnix.java:157)
        at es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilitiesUnix.getNssPaths(MozillaKeyStoreUtilitiesUnix.java:87)
        at es.gob.afirma.keystores.mozilla.MozillaKeyStoreUtilitiesUnix.<clinit>(MozillaKeyStoreUtilitiesUnix.java:32)
        ... 9 more

Esta modificación comprueba que se ha podido listar el directorio.