SlideShare una empresa de Scribd logo
1 de 11
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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (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
 

Similar a 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
 
Redes del computador unidad 3
Redes del computador unidad 3Redes del computador unidad 3
Redes del computador unidad 3AngelSoto104
 
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 pv3Marcelo Venegas Zúñiga
 
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 AWSAmazon 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 NoviembreGecneralfredo
 
2. criptografiìa con java
2. criptografiìa con java2. criptografiìa con java
2. criptografiìa con java1 2d
 
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 accessTensor
 

Similar a 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
 

Más de 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
 

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