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();
|
}
|
}
|
|
|
|
|
|
|
}
|