package art.servers.gost.atex5; import art.library.interop.serialization.Serialization; import art.library.model.devices.gost.types.atex5.PersonATEX5; import art.library.model.devices.gost.types.atex5.VehicleATEX5; import art.servers.gost.access.configuration.Configuration; import art.servers.gost.access.configuration.ConfigurationDetail_ATEX5; import art.servers.gost.atex5.generated.ATEX; import art.servers.gost.atex5.generated.ConsultaATEX; import art.servers.gost.atex5.generated.CriteriosConsultaPersona; import art.servers.gost.atex5.generated.CriteriosConsultaVehiculo; import art.servers.gost.atex5.generated.RespuestaAtex; import art.servers.gost.atex5.generated.SolicitudConsultaPersonaAtex; import art.servers.gost.atex5.generated.SolicitudConsultaVehiculoAtex; import java.io.ByteArrayInputStream; import java.net.URL; import java.security.cert.X509Certificate; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLSession; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import javax.xml.bind.JAXBContext; import javax.xml.bind.Unmarshaller; public class ATEX5 { private static boolean initialised = false; public VehicleATEX5 solicitudConsultaVehiculoAtex(String plate) throws Exception { if (initialised == false) { initialise(); } Configuration configuration = ((Configuration)art.servers.gost.access.Shared.configuration); ConfigurationDetail_ATEX5 configurationATEX5 = configuration.detail.atex5; // Consulta vehiculo SolicitudConsultaVehiculoAtex solicitudConsultaVehiculoAtex = new SolicitudConsultaVehiculoAtex(); { solicitudConsultaVehiculoAtex.setIdUsuario(configurationATEX5.userIdentifier); solicitudConsultaVehiculoAtex.setIdOrganismoResponsable(configurationATEX5.organismIdentifier); solicitudConsultaVehiculoAtex.setIdResponsable(configurationATEX5.responsibleIdentifier); solicitudConsultaVehiculoAtex.setVersion(configurationATEX5.version); solicitudConsultaVehiculoAtex.setTasa(""); CriteriosConsultaVehiculo criterio = new CriteriosConsultaVehiculo(); { criterio.setMatricula(plate); } solicitudConsultaVehiculoAtex.setCriteriosConsultaVehiculo(criterio); } URL url = new URL(configurationATEX5.endpoint); ATEX atex = new ATEX(url); atex.setHandlerResolver(new SOAPHandlerResolverVehiculo(plate)); ConsultaATEX consulta = atex.getATEX(); RespuestaAtex response = consulta.consultaATEXVehiculo(solicitudConsultaVehiculoAtex); JAXBContext jaxbContext = JAXBContext.newInstance(VehicleATEX5.class); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); VehicleATEX5 vehicle = (VehicleATEX5)unmarshaller.unmarshal(new ByteArrayInputStream(response.getRespuesta().getBytes("ISO-8859-1"))); return vehicle; } public PersonATEX5 solicitudConsultaPersonaAtex(String nifcif) throws Exception { if (initialised == false) { initialise(); } Configuration configuration = ((Configuration)art.servers.gost.access.Shared.configuration); ConfigurationDetail_ATEX5 configurationATEX5 = configuration.detail.atex5; // Consulta persona SolicitudConsultaPersonaAtex solicitudConsultaPersonaAtex = new SolicitudConsultaPersonaAtex(); { solicitudConsultaPersonaAtex.setIdUsuario(configurationATEX5.userIdentifier); solicitudConsultaPersonaAtex.setIdOrganismoResponsable(configurationATEX5.organismIdentifier); solicitudConsultaPersonaAtex.setIdResponsable(configurationATEX5.responsibleIdentifier); solicitudConsultaPersonaAtex.setVersion(configurationATEX5.version); solicitudConsultaPersonaAtex.setTasa(""); CriteriosConsultaPersona criterio = new CriteriosConsultaPersona(); { criterio.setDoi(nifcif); } solicitudConsultaPersonaAtex.setCriteriosConsultaPersona(criterio); } URL url = new URL(configurationATEX5.endpoint); ATEX atex = new ATEX(url); atex.setHandlerResolver(new SOAPHandlerResolverPersona(nifcif)); ConsultaATEX consulta = atex.getATEX(); RespuestaAtex response = consulta.consultaATEXPersona(solicitudConsultaPersonaAtex); JAXBContext jaxbContext = JAXBContext.newInstance(PersonATEX5.class); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); PersonATEX5 person = (PersonATEX5)unmarshaller.unmarshal(new ByteArrayInputStream(response.getRespuesta().getBytes("ISO-8859-1"))); return person; } private static void initialise() { Configuration configuration = ((Configuration)art.servers.gost.access.Shared.configuration); ConfigurationDetail_ATEX5 configurationATEX5 = configuration.detail.atex5; try { System.setProperty("javax.xml.soap.MessageFactory","com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl"); System.setProperty("javax.xml.soap.SOAPFactory","com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl"); System.setProperty("javax.xml.soap.MetaFactory","com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl"); System.setProperty("javax.net.ssl.trustStoreType", "JKS"); System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2"); System.setProperty("javax.net.ssl.keyStore", configurationATEX5.keystoreLocation); System.setProperty("javax.net.ssl.keyStorePassword", configurationATEX5.keystorePassword); if (configurationATEX5.debug == true) { System.setProperty("com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump", "true"); System.setProperty("com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump", "true"); System.setProperty("com.sun.xml.ws.transport.http.HttpAdapter.dump", "true"); System.setProperty("com.sun.xml.internal.ws.transport.http.HttpAdapter.dump", "true"); System.setProperty("javax.net.debug", "ssl"); } TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { public X509Certificate[] getAcceptedIssuers() { return null; } public void checkClientTrusted(X509Certificate[] certs, String authType) { // Trust always } public void checkServerTrusted(X509Certificate[] certs, String authType) { // Trust always } } }; // Install the all-trusting trust manager SSLContext sc = SSLContext.getInstance("SSL"); // Create empty HostnameVerifier HostnameVerifier hv = new HostnameVerifier() { public boolean verify(String arg0, SSLSession arg1) { return true; } }; sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); HttpsURLConnection.setDefaultHostnameVerifier(hv); } catch (Exception e) { e.printStackTrace(); } } }