Microservicios con IdentityStore

Creamos un Microservicio donde establecemos seguridad mediante IdentityStore.

Proyecto: microservicesseguro

Cliente: clienteseguro

Crear proyecto PayaraMicro

Desde NetBeans --> New Project

indicar el nombre del proyecto

indicar la versión de PayaraMicro

Trabajaremos en crear una estructura similar a la imagen

Cuando finalizamos nos quedara el servicio Rest de la siguiente manera

Dependencias archivo pom.xml

Crear el entity Paises.java

Crear PaisesResources.java

Que utilizaremos mediante JAX-RS para devolver la lista de países mediante @Path("/paises") identificamos el path.

Observe que el metodo getPaises() restringuimos el acceso solo a administrador mediante @RolesAllowed({"administrador"})

Crear la clase principal JAXRSConfiguration.java

Mediante @DeclareRoles espeficamos los roles permitidos para usar el Microservicio.

@BasicAuthentificationMechanismDefinition definimos el tipo de autentificaciòn.

Crear la clase TestIdentityStore.java

Que implementara la validación del username, password y devolvera los roles del usuario.

A modo de ejemplo usamos: myusername, mypassword para autentificar al usuario y devolvemos los roles. En un ejemplo real puede ser información proveniente de una base de datos u otro repositorio.

Archivo web.xml

Editar el archivo web.xml y agregar los roles permitidos. Que usamos en JAXRSConfiguration.java y en PaisesResources.java

Podemos ejecutarlo o convertirlo en un UberJar

Para comprobar que esta funcionando podemos utilizar nuestro navegador o Postman. Si es en la maquina local puede usar localhost o el ip.

Postman

Ahora deseamos accesar la lista de paises

Ingresamos en el url

Desde google chrome

Se activa el dialogo solicitando el nombre de usuario y el password, usaremos

Si los datos son correcto accedemos al servicio y obtenemos los resultados

Si usamos Postman

Necesitamos indicar los parámetros, dar clic en el botón Param

En tipo de autentificacion selecionar Basic Auth

ingresar los datos

dar clic en el botón Update Request

y presionar nuevamente el botòn Send

Last updated