SlideShare ist ein Scribd-Unternehmen logo
Java Web Services
Temas Adicionales
Email de consultas: luisdebello.cursos@gmail.com
Handlers I
Son interceptores de mensajes, que son fácilmente adaptables a JAX-WS.
Hay dos tipos de handlers, estos pueden ser lógicos o de protocolo. Los
handler de protocolo dejan acceder a todo el contexto y los lógicos solo al
payload.
Java Web Services
Handlers II
Dependiendo el tipo de handler se ejecutaran antes o después, esto
también varia si el mensaje es entrante o saliente.
Java Web Services
Handlers III
Dependiendo que tipo de Handler deseamos, debemos implementar una o
otra clase y los objetos devueltos son distintos.
Java Web Services
Logical handler SOAP handler
extends javax.xml.ws.handler.LogicalHandler javax.xml.ws.handler.soap.SOAPHandler
message context javax.xml.ws.handler.LogicalMessageContext javax.xml.ws.handler.soap.SOAPMessageContext
getMessage() of message context gives javax.xml.ws.LogicalMessage javax.xml.soap.SOAPMessage
MTOM (Message Transmission Optimization Mechanism)
MTOM es un WFS(Web Feature Service) el cual provee un forma eficiente
de transmitir datos binarios sobre Web Services como datos.
Nota: MTOM solo funciona cuando ambas partes lo soportan.
Formas de Activar MTOM:
- Anotación @MTOM
- sun-jaxws-xml
Java Web Services
MTOM Threshold
Existe ciertos escenarios donde queremos activar MTOM solo cuando el
tamaño supere cierto limite, porque si tenemos muchos archivos pequeños
este feature puede afectar la performance en lugar de mejorarla.
Tenemos dos formas de poner control sobre esto
- Agregar el parámetro a la anotación como por ejemplo
@MTOM(threshold=3000)
- Agregar el parámetro a la hora de crear el servicio, como por ejemplo new
MTOMFeature(3000)
Java Web Services
WS-Security
El WS-Security es una extensión del protocolo SOAP que define
mecanismos para proteger la integridad y confidencialidad de los
mensajes, tenemos varios mecanismos distintos.
Esto es definido por WSIT el cual implementa las especificaciones WS-I, la
cual incluye la parte de seguridad.
Herramienta Ant:
http://wsitbt.codeplex.com/
Java Web Services
UsernameToken I
UsernameToken provee un standard para representar el usuario y la
password, esto puede ser texto plano o informacion encriptada. La
informacion viaja en el SOAP Header.
Puntos a tener en cuenta:
- Dependiendo donde estemos los XML Namespace serán distintos
- Client: http://schemas.sun.com/2006/03/wss/client
- Server: http://schemas.sun.com/2006/03/wss/server
- El Policy namespace apunta a:
- http://java.sun.com/xml/ns/wsit/policy
- Puede ser configurado sobre el WSDL o podemos usar archivos separados
llamados wsit-*.xml.
- Metro provee dos opciones para la validacion del lado servidor
- Container Based: Esto es si lo maneja el container por ejemplo, si lo
configuramos en tomcat-users.xml
- Validation Handler Class: Definimos una clase que valida estos datos
Java Web Services
UsernameToken II
Java Web Services
Vamos a crear nuestro propio validador implementando
"PasswordValidationCallback.PasswordValidator".
Lado Servidor:
Para poder configurar la seguridad debemos tener el archivo "wsit-
<Paquete al Implementor>.xml" en la carpeta "WEB-INF".
Lado Cliente:
Debemos incluir la librería Metro
Debemos crear el archivo client-security-env.properties en el raiz.
Certificados X509
Java Web Services
Si deseamos trabajar con certificados debemos tener la clave publica, si
nosotros necesitamos generar tanto la publica como la privada podemos
usar la herramienta keytool incluida en el JDK.
keytool -genkey -alias serviceKey -keypass mykeypass -keystore
wsKeyStore.jks -storepass wsdata -keyalg RSA -dname "CN=Cosme
Fulanito, OU=Web Service, O=EducacionIT, L=BS, ST=CF, C=AR"
Explicación:
- alias: Nombre con el que haremos referencia al par de claves creado.
- keypass: Es la clave con la que podremos acceder a la clave privada del par de claves
creado.
- keystore: Es en almacén de certificados con claves privadas.
- storepass: Clave para acceder a nuestro keystore.
- keyalg: Algoritmo usado para la creación
- dname: CN=Nombre y Apellido, OU=Unidad de Organización, O=Nombre de la
organización, L=Localidad, ST=Estado o provincia, C=Codigo país dos letras.
Exportar certificados públicos
Java Web Services
Luego debemos exportar el certificado publico
keytool -export -alias serviceKey -keypass mykeypass -keystore
wsKeyStore.jks -storepass wsdata -file certificadoPublico.cer
Luego debemos agregar el certificado a nuestro truststore (Almacén de
claves publicas)
keytool -import -alias certificadoPublico -keystore wsTrustStore.jks -
storepass wsclient -file certificadoPublico.cer

Weitere ähnliche Inhalte

Was ist angesagt?

DPRN3_U3_A1_IRUM
DPRN3_U3_A1_IRUMDPRN3_U3_A1_IRUM
DPRN3_U3_A1_IRUM
Irving_Utrilla
 
Ac1u3
Ac1u3Ac1u3
Webinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores CloudWebinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores Cloud
Arsys
 
Dprn3_u3_a1_herm
Dprn3_u3_a1_hermDprn3_u3_a1_herm
Dprn3_u3_a1_herm
aidetorres9
 
Autentificacion sql antonio_hermoso
Autentificacion sql antonio_hermosoAutentificacion sql antonio_hermoso
Autentificacion sql antonio_hermoso
Antonio Hermoso González
 
Dprn3 u3 a1_osfm
Dprn3 u3 a1_osfmDprn3 u3 a1_osfm
Dprn3 u3 a1_osfm
OSCARFRANCO69
 
Dprn3 u3 a1_mame
Dprn3 u3 a1_mameDprn3 u3 a1_mame
Dprn3 u3 a1_mame
MariadelCarmenMontes3
 
DPRN3_U3_A1_FEGM
DPRN3_U3_A1_FEGMDPRN3_U3_A1_FEGM
DPRN3_U3_A1_FEGM
Rodrigo García
 
Connection trabajo
Connection trabajoConnection trabajo
Connection trabajo
INGRID LESLY CORONEL ACUÑA
 
Creando un login permisos de ejecucion en access
Creando un login permisos de ejecucion en accessCreando un login permisos de ejecucion en access
Creando un login permisos de ejecucion en access
Carmen Parr
 
Dprn3 u3 a1_jahf
Dprn3 u3 a1_jahfDprn3 u3 a1_jahf
Dprn3 u3 a1_jahf
jahaziel_eduardo
 
Replicacion bases datos 2
Replicacion bases datos 2Replicacion bases datos 2
Replicacion bases datos 2
Velmuz Buzz
 
Dprn3 u3 a1_jupm
Dprn3 u3 a1_jupmDprn3 u3 a1_jupm
Dprn3 u3 a1_jupm
Antonio Padilla
 

Was ist angesagt? (13)

DPRN3_U3_A1_IRUM
DPRN3_U3_A1_IRUMDPRN3_U3_A1_IRUM
DPRN3_U3_A1_IRUM
 
Ac1u3
Ac1u3Ac1u3
Ac1u3
 
Webinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores CloudWebinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores Cloud
 
Dprn3_u3_a1_herm
Dprn3_u3_a1_hermDprn3_u3_a1_herm
Dprn3_u3_a1_herm
 
Autentificacion sql antonio_hermoso
Autentificacion sql antonio_hermosoAutentificacion sql antonio_hermoso
Autentificacion sql antonio_hermoso
 
Dprn3 u3 a1_osfm
Dprn3 u3 a1_osfmDprn3 u3 a1_osfm
Dprn3 u3 a1_osfm
 
Dprn3 u3 a1_mame
Dprn3 u3 a1_mameDprn3 u3 a1_mame
Dprn3 u3 a1_mame
 
DPRN3_U3_A1_FEGM
DPRN3_U3_A1_FEGMDPRN3_U3_A1_FEGM
DPRN3_U3_A1_FEGM
 
Connection trabajo
Connection trabajoConnection trabajo
Connection trabajo
 
Creando un login permisos de ejecucion en access
Creando un login permisos de ejecucion en accessCreando un login permisos de ejecucion en access
Creando un login permisos de ejecucion en access
 
Dprn3 u3 a1_jahf
Dprn3 u3 a1_jahfDprn3 u3 a1_jahf
Dprn3 u3 a1_jahf
 
Replicacion bases datos 2
Replicacion bases datos 2Replicacion bases datos 2
Replicacion bases datos 2
 
Dprn3 u3 a1_jupm
Dprn3 u3 a1_jupmDprn3 u3 a1_jupm
Dprn3 u3 a1_jupm
 

Ähnlich wie Java Web Services - SOAP Temas Adicionales

Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
RootedCON
 
Servicios web
Servicios webServicios web
Servicios web
Daniel Salgado
 
Web Services JAX-RS RESTful y SOAP
Web Services JAX-RS RESTful y SOAPWeb Services JAX-RS RESTful y SOAP
Web Services JAX-RS RESTful y SOAP
ismaelmartincolmenarejo
 
Seguridad de las redes
Seguridad de las redesSeguridad de las redes
Seguridad de las redes
LesmenCardenas1
 
Lab-03-PD2-SOAP
Lab-03-PD2-SOAPLab-03-PD2-SOAP
Redes del computador unidad 3
Redes del computador unidad 3Redes del computador unidad 3
Redes del computador unidad 3
AngelSoto104
 
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Marcelo Venegas Zúñiga
 
Soa Y Bpel
Soa Y BpelSoa Y Bpel
Soa Y Bpel
carlosrf82
 
Comenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSComenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWS
Amazon Web Services LATAM
 
Web Cast I S A Server 2004 3 Noviembre
Web Cast  I S A  Server 2004 3  NoviembreWeb Cast  I S A  Server 2004 3  Noviembre
Web Cast I S A Server 2004 3 Noviembre
Gecneralfredo
 
2. criptografiìa con java
2. criptografiìa con java2. criptografiìa con java
2. criptografiìa con java
1 2d
 
Servicios web Extendido_error perl
Servicios web Extendido_error perlServicios web Extendido_error perl
Servicios web Extendido_error perl
Octavio Izucar Martinez
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
Norma Alicia
 
Apli t1 ejr
Apli t1 ejrApli t1 ejr
Apli t1 ejr
garciadebora
 
Servicios web
Servicios webServicios web
Servicios web
Joel Balderrama Rosas
 
Protocolo SSL
Protocolo SSLProtocolo SSL
Protocolo SSL
José Salcedo
 
Unidad III: Seguridad de Las Redes.
Unidad III: Seguridad de Las Redes.Unidad III: Seguridad de Las Redes.
Unidad III: Seguridad de Las Redes.
JuanDiegoGarcia11
 
Maitaining access
Maitaining accessMaitaining access
Maitaining access
Tensor
 
Web service
Web serviceWeb service
Web service
aktivfinger
 
Web service
Web serviceWeb service
Web service
aktivfinger
 

Ähnlich wie Java Web Services - SOAP Temas Adicionales (20)

Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
Javier Saez - Una panorámica sobre la seguridad en entornos web [rootedvlc2]
 
Servicios web
Servicios webServicios web
Servicios web
 
Web Services JAX-RS RESTful y SOAP
Web Services JAX-RS RESTful y SOAPWeb Services JAX-RS RESTful y SOAP
Web Services JAX-RS RESTful y SOAP
 
Seguridad de las redes
Seguridad de las redesSeguridad de las redes
Seguridad de las redes
 
Lab-03-PD2-SOAP
Lab-03-PD2-SOAPLab-03-PD2-SOAP
Lab-03-PD2-SOAP
 
Redes del computador unidad 3
Redes del computador unidad 3Redes del computador unidad 3
Redes del computador unidad 3
 
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
 
Soa Y Bpel
Soa Y BpelSoa Y Bpel
Soa Y Bpel
 
Comenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSComenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWS
 
Web Cast I S A Server 2004 3 Noviembre
Web Cast  I S A  Server 2004 3  NoviembreWeb Cast  I S A  Server 2004 3  Noviembre
Web Cast I S A Server 2004 3 Noviembre
 
2. criptografiìa con java
2. criptografiìa con java2. criptografiìa con java
2. criptografiìa con java
 
Servicios web Extendido_error perl
Servicios web Extendido_error perlServicios web Extendido_error perl
Servicios web Extendido_error perl
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Apli t1 ejr
Apli t1 ejrApli t1 ejr
Apli t1 ejr
 
Servicios web
Servicios webServicios web
Servicios web
 
Protocolo SSL
Protocolo SSLProtocolo SSL
Protocolo SSL
 
Unidad III: Seguridad de Las Redes.
Unidad III: Seguridad de Las Redes.Unidad III: Seguridad de Las Redes.
Unidad III: Seguridad de Las Redes.
 
Maitaining access
Maitaining accessMaitaining access
Maitaining access
 
Web service
Web serviceWeb service
Web service
 
Web service
Web serviceWeb service
Web service
 

Mehr von Luis Miguel De Bello

Java Web Services - REST
Java Web Services - RESTJava Web Services - REST
Java Web Services - REST
Luis Miguel De Bello
 
Java Web Services - SOAP Binding
Java Web Services - SOAP BindingJava Web Services - SOAP Binding
Java Web Services - SOAP Binding
Luis Miguel De Bello
 
Java Web Services - Introduccion
Java Web Services - IntroduccionJava Web Services - Introduccion
Java Web Services - Introduccion
Luis Miguel De Bello
 
Java Web - JSF
Java Web - JSFJava Web - JSF
Java Web - JSF
Luis Miguel De Bello
 
Java Web - Struts
Java Web - StrutsJava Web - Struts
Java Web - Struts
Luis Miguel De Bello
 
Java Web - JSP
Java Web - JSPJava Web - JSP
Java Web - JSP
Luis Miguel De Bello
 
Java Web - Servlet
Java Web - ServletJava Web - Servlet
Java Web - Servlet
Luis Miguel De Bello
 
Base de datos - Clase 2
Base de datos - Clase 2Base de datos - Clase 2
Base de datos - Clase 2
Luis Miguel De Bello
 
Base de datos - Clase 3
Base de datos - Clase 3Base de datos - Clase 3
Base de datos - Clase 3
Luis Miguel De Bello
 
Base de datos - Clase 1
Base de datos - Clase 1Base de datos - Clase 1
Base de datos - Clase 1
Luis Miguel De Bello
 
Base de datos - Clase 4
Base de datos - Clase 4Base de datos - Clase 4
Base de datos - Clase 4
Luis Miguel De Bello
 
Java Web - Session
Java Web - SessionJava Web - Session
Java Web - Session
Luis Miguel De Bello
 
Java Web - Introduccion
Java Web - IntroduccionJava Web - Introduccion
Java Web - Introduccion
Luis Miguel De Bello
 
Sockets TCP
Sockets TCPSockets TCP
Sockets UDP
Sockets UDPSockets UDP
Thread 02
Thread 02Thread 02
Thread 01
Thread 01Thread 01
Log4J
Log4JLog4J
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
Luis Miguel De Bello
 
Best Practices
Best PracticesBest Practices
Best Practices
Luis Miguel De Bello
 

Mehr von Luis Miguel De Bello (20)

Java Web Services - REST
Java Web Services - RESTJava Web Services - REST
Java Web Services - REST
 
Java Web Services - SOAP Binding
Java Web Services - SOAP BindingJava Web Services - SOAP Binding
Java Web Services - SOAP Binding
 
Java Web Services - Introduccion
Java Web Services - IntroduccionJava Web Services - Introduccion
Java Web Services - Introduccion
 
Java Web - JSF
Java Web - JSFJava Web - JSF
Java Web - JSF
 
Java Web - Struts
Java Web - StrutsJava Web - Struts
Java Web - Struts
 
Java Web - JSP
Java Web - JSPJava Web - JSP
Java Web - JSP
 
Java Web - Servlet
Java Web - ServletJava Web - Servlet
Java Web - Servlet
 
Base de datos - Clase 2
Base de datos - Clase 2Base de datos - Clase 2
Base de datos - Clase 2
 
Base de datos - Clase 3
Base de datos - Clase 3Base de datos - Clase 3
Base de datos - Clase 3
 
Base de datos - Clase 1
Base de datos - Clase 1Base de datos - Clase 1
Base de datos - Clase 1
 
Base de datos - Clase 4
Base de datos - Clase 4Base de datos - Clase 4
Base de datos - Clase 4
 
Java Web - Session
Java Web - SessionJava Web - Session
Java Web - Session
 
Java Web - Introduccion
Java Web - IntroduccionJava Web - Introduccion
Java Web - Introduccion
 
Sockets TCP
Sockets TCPSockets TCP
Sockets TCP
 
Sockets UDP
Sockets UDPSockets UDP
Sockets UDP
 
Thread 02
Thread 02Thread 02
Thread 02
 
Thread 01
Thread 01Thread 01
Thread 01
 
Log4J
Log4JLog4J
Log4J
 
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
 
Best Practices
Best PracticesBest Practices
Best Practices
 

Kürzlich hochgeladen

primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
eliersin13
 
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdfPC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
JhenryHuisa1
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptxTECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
KatiuskaDominguez2
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
Maria Celeste Trujillo Cruz
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
PaulDelgadoSoto
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
holabuscafiesta
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
dayronfabricioruizmo
 

Kürzlich hochgeladen (9)

primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
 
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdfPC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
PC-04-DISEÑOS DE PITS Y STOPES DE UNA MINA A TAJO ABIERTO.pdf
 
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptxTECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
TECLADO ERGONÓMICO Y PANTALLAS TACTILES.pptx
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
 

Java Web Services - SOAP Temas Adicionales

  • 1. Java Web Services Temas Adicionales Email de consultas: luisdebello.cursos@gmail.com
  • 2. Handlers I Son interceptores de mensajes, que son fácilmente adaptables a JAX-WS. Hay dos tipos de handlers, estos pueden ser lógicos o de protocolo. Los handler de protocolo dejan acceder a todo el contexto y los lógicos solo al payload. Java Web Services
  • 3. Handlers II Dependiendo el tipo de handler se ejecutaran antes o después, esto también varia si el mensaje es entrante o saliente. Java Web Services
  • 4. Handlers III Dependiendo que tipo de Handler deseamos, debemos implementar una o otra clase y los objetos devueltos son distintos. Java Web Services Logical handler SOAP handler extends javax.xml.ws.handler.LogicalHandler javax.xml.ws.handler.soap.SOAPHandler message context javax.xml.ws.handler.LogicalMessageContext javax.xml.ws.handler.soap.SOAPMessageContext getMessage() of message context gives javax.xml.ws.LogicalMessage javax.xml.soap.SOAPMessage
  • 5. MTOM (Message Transmission Optimization Mechanism) MTOM es un WFS(Web Feature Service) el cual provee un forma eficiente de transmitir datos binarios sobre Web Services como datos. Nota: MTOM solo funciona cuando ambas partes lo soportan. Formas de Activar MTOM: - Anotación @MTOM - sun-jaxws-xml Java Web Services
  • 6. MTOM Threshold Existe ciertos escenarios donde queremos activar MTOM solo cuando el tamaño supere cierto limite, porque si tenemos muchos archivos pequeños este feature puede afectar la performance en lugar de mejorarla. Tenemos dos formas de poner control sobre esto - Agregar el parámetro a la anotación como por ejemplo @MTOM(threshold=3000) - Agregar el parámetro a la hora de crear el servicio, como por ejemplo new MTOMFeature(3000) Java Web Services
  • 7. WS-Security El WS-Security es una extensión del protocolo SOAP que define mecanismos para proteger la integridad y confidencialidad de los mensajes, tenemos varios mecanismos distintos. Esto es definido por WSIT el cual implementa las especificaciones WS-I, la cual incluye la parte de seguridad. Herramienta Ant: http://wsitbt.codeplex.com/ Java Web Services
  • 8. UsernameToken I UsernameToken provee un standard para representar el usuario y la password, esto puede ser texto plano o informacion encriptada. La informacion viaja en el SOAP Header. Puntos a tener en cuenta: - Dependiendo donde estemos los XML Namespace serán distintos - Client: http://schemas.sun.com/2006/03/wss/client - Server: http://schemas.sun.com/2006/03/wss/server - El Policy namespace apunta a: - http://java.sun.com/xml/ns/wsit/policy - Puede ser configurado sobre el WSDL o podemos usar archivos separados llamados wsit-*.xml. - Metro provee dos opciones para la validacion del lado servidor - Container Based: Esto es si lo maneja el container por ejemplo, si lo configuramos en tomcat-users.xml - Validation Handler Class: Definimos una clase que valida estos datos Java Web Services
  • 9. UsernameToken II Java Web Services Vamos a crear nuestro propio validador implementando "PasswordValidationCallback.PasswordValidator". Lado Servidor: Para poder configurar la seguridad debemos tener el archivo "wsit- <Paquete al Implementor>.xml" en la carpeta "WEB-INF". Lado Cliente: Debemos incluir la librería Metro Debemos crear el archivo client-security-env.properties en el raiz.
  • 10. Certificados X509 Java Web Services Si deseamos trabajar con certificados debemos tener la clave publica, si nosotros necesitamos generar tanto la publica como la privada podemos usar la herramienta keytool incluida en el JDK. keytool -genkey -alias serviceKey -keypass mykeypass -keystore wsKeyStore.jks -storepass wsdata -keyalg RSA -dname "CN=Cosme Fulanito, OU=Web Service, O=EducacionIT, L=BS, ST=CF, C=AR" Explicación: - alias: Nombre con el que haremos referencia al par de claves creado. - keypass: Es la clave con la que podremos acceder a la clave privada del par de claves creado. - keystore: Es en almacén de certificados con claves privadas. - storepass: Clave para acceder a nuestro keystore. - keyalg: Algoritmo usado para la creación - dname: CN=Nombre y Apellido, OU=Unidad de Organización, O=Nombre de la organización, L=Localidad, ST=Estado o provincia, C=Codigo país dos letras.
  • 11. Exportar certificados públicos Java Web Services Luego debemos exportar el certificado publico keytool -export -alias serviceKey -keypass mykeypass -keystore wsKeyStore.jks -storepass wsdata -file certificadoPublico.cer Luego debemos agregar el certificado a nuestro truststore (Almacén de claves publicas) keytool -import -alias certificadoPublico -keystore wsTrustStore.jks - storepass wsclient -file certificadoPublico.cer