Tutorial Spring REST 3/9 – Configurar OAUTH2 en un proyecto REST de Spring 4

1261

En este artículo explicamos la configuración de OAUTH2 con Spring Security en un servicio REST, míra nuestro anterior artículo para ver la configuración de un servicio REST con Spring 4, con más detalle.

El objetivo de asegurar servicios REST con Spring Security y OAUTH2 es proteger nuestra aplicación contra los ataques más comunes en Internet, además de autenticar y dar acceso a nuestros usuarios mediante tokens caducables con el protocolo OAUTH2.

Dependencias de Maven

Configuración de seguridad

Finalmente, revisemos las clases de configuración para la seguridad web y autenticación (mediante tokens) de nuestro proyecto, de acuerdo al protocolo OAUTH2.

Primeramente revisemos la configuración del Servidor de Autorización, en el cual especificaremos los permisos otorgados a un cliente de confianza y el tiempo que durará activo cada uno de los tokens (en este demo, los clientes se especifican en memoria pero se pueden verificar contra una base de datos).

En esta clase de configuración, habilitaremos el servidor de recursos, en el cual especificaremos las URIs que queremos proteger y qué roles de usuario tendrán acceso.

Finalmente, habilitamos la seguridad web en nuestro proyecto y definimos la forma en la que la aplicación validará las credenciales recibidas de los usuarios (en este caso, contra una base de datos SQL). También, especificamos el algoritmo de cifrado para los passwords (en este caso BCrypt).

Configuración de JPA

Como pudiste notar en la sección anterior, la autenticación se hace contra la base de datos, por lo que requerimos de una conexión que en este caso haremos mediante JPA y Hibernate, de la siguiente manera (este bean es inyectado a la configuración de seguridad):

Para indagar más en el tema de JPA con Spring 4, puedes consultar nuestro artículo que habla específicamente sobre este tema. 🙂

Acceso por roles dentro del código

Adicionalmente a la seguridad Web y autenticación con tokens revisadas, puedes utilizar validaciones de seguridad dentro de tu código en Java con las anotaciones de Spring Security en orden de garantizar acceso a partir de roles de usuarios a nivel no solo de URIs sino de métodos de Java, de la siguiente forma.

Continua con el tutorial

Recuerda que esta serie cuenta con 9 tutoriales, puedes revisar el siguiente sobre la configuraciónde Hibernate Validator para validar los objetos recibidos en los request hacia nuestro servicio REST.

Tutorial Spring REST 4/9 – Configuración de Hibernate Validator con Spring 4

Repositorio en Github

Nota que no todo el código del proyecto fue incluido en este artículo, puedes encontrar el código completo en nuestro repositorio de Github: https://github.com/chuucks/SPRING-REST-API/

Recuerda darnos una estrellita 😉


La configuración de Spring Security y OAUTH2 mostrada en este artículo para un servicio REST, es solo una forma propuesta de hacerlo y tienen fines únicamente ilustrativos para nuestra la comunidad de Codesolt.

Comments

comments