jueves, 5 de enero de 2017

Axis2: Seguridad en WSO2 AS 5.3.0

image

Ayer revisando StackOverflow me he topado con una pregunta sobre como establecer la seguridad para un servicio axis2 desplegado en el WSO2 AS 5.3.0 y la verdad es que desconocía que esta funcionalidad, muy buena por cierto, había sido removida de la interfaz web.
Realmente no me ha gustado que se removiera, pues de una manera muy fácil permitía a los desarrolladores definir la seguridad para los servicios axis2, pero son cosas de la compañía WSO2 que habría que revisar los pro y los contras.

La respuesta a la pregunta está en el enlace que puse más arriba pero lleva un trabajo adicional a lo que se hacía antes a través de la UI. Se necesita:
  • Identificar el XML que define la política que queremos usar. En mi respuesta usé la más sencilla, UsernameToken over HTTPs.
  • Incluir en el fichero services.xml del servicio axis2, que está dentro del fichero .aar la referencia al módulo de rampart. Que es el que define la seguridad para el framework axis2.
  • Definir cómo se vinculará la política con las distintas operaciones del servicio y donde será adjuntada.
  • Definir algunas configuraciones propias de rampart dentro de la política para la encriptación y uso de los usuarios del WSO2 AS y también una configuración extra para el carbon definiendo los roles que tendrán permiso de acceso al servicio.
Una vez que se tiene un ejemplo resulta más fácil establecer la seguridad para cualquier servicio axis2 pero para aquellos que no dominan el framework puede llevarle horas o días dar con la configuración correcta. De ahí que me decidiera a compartir un ejemplo sencillo que les sirva a los que se enfrente a este pequeño problema.

7 comentarios:

  1. Jorge, Como va todo? oye estoy recordando viejos tiempos y traté de ejecutar el AS en Windows 10 y tengo este error..
    E:\work\tools\wso2 tools\wso2as-5.3.0\bin>wsdl2java.bat --run
    'ant' is not recognized as an internal or external command,
    operable program or batch file.
    Using CARBON_HOME: E:\work\tools\wso2 tools\wso2as-5.3.0
    Using JAVA_HOME: C:\Program Files\Java\jdk1.8.0_102
    Error: Could not find or load main class org.apache.axis2.wsdl.WSDL2Java
    lo gracioso es que recién esta tarde si pude hacerlo en otra PC, la única diferencia era que tenia W 7

    ResponderEliminar
    Respuestas
    1. Hola Arley, cómo te va?
      Si lo que quieres es iniciar el WSO2 AS el fichero a ejecutar no es el wsdl2java.bat si no el wso2server.bat.

      Si ese es el fichero que quieres ejecutar el error te indica que no tienes ant instalado o configurada la ruta del bin de ant en el PATH de tu windows 10. Ej: en mi caso tengo puesto esto en el PATH "D:\apache-ant-1.7.0\bin". Espero resuelvas. Saludos.

      Eliminar
    2. yes, sorry about that...below the real issue
      E:\work\tools\wso2 tools\wso2as-5.3.0\bin>wso2server.bat --run
      The system cannot find the file specified.
      JAVA_HOME environment variable is set to C:\Program Files\Java\jdk1.8.0_102
      CARBON_HOME environment variable is set to E:\work\tools\wso2 tools\wso2as-5.3.0\bin\..
      Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
      Error: Could not find or load main class tools\wso2as-5.3.0\bin\..\repository\conf\carbon.xml

      Eliminar
  2. Y estás usando una instalación limpia del AS? Porque acabo de probarlo acá y no me da ese error...mira si tienes espacios en blanco en las carpetas creo que la de "wso2 tools" deberías eliminar ese espacio en blanco.

    ResponderEliminar
  3. gracias jorge..ese era el problema!!! no se por qué, no tiene mucho sentido eso o si????

    ResponderEliminar
  4. dale métele, que te voy a cobrar el soporte jeje!!!!

    ResponderEliminar
  5. Jaja muy flojo @Arley y que tarde leo esto la figura si quieres quitarte de encima estos problemas de espacios y Java tienes 2 opciones:
    1 hacer lo recomendado por Jorgiño
    2 Poner el path hasta el .bat completo entre comillas

    Pero para que te sirva de experiencia en Java lo mejor son los path bien cortos tipo C:/algo o D:/algo y siempre sin espacios.
    Un abrazo a los dos

    ResponderEliminar