Este proyecto contiene el desarrollo de la solucion del authorization-server del protocolo OAuth2, en el quise implementar un sistema generico para poder aplicarlo a cualquier otra aplicacion por lo que tambien hice uso de OpenID y OpenID Connect para cubrir tambien la parte de autenticacion.
En este proyecto quise implementar dos flujos de OAuth2 en el con la posibilidad de elegir cual de ellos a la hora de crear un cliente, esto son el Authorization Code Flow que fue el que inicialmente pense en implementar al tener suficiente seguridad para la gran mayoria de proyectos basado en el intercambio de un authorization-code por el JWT para realizar los demas procesos de acceso a los recursos pero luego pense que ese authorization-code podria ser interceptado haciendo uso de herramientas libres al publico como podria ser Wireshark que intercepta todo tipo de informacion en todas las capas TCP, entonces añadi el uso de ese mismo flujo pero con una capa extra de seguridad que es el Authorization Code Flow con PKCE(Proof Key Code Exchange) que permite añadir otro requisito para obtenere el JWT que es pasar un Code Challenge que esta encriptado y que permanece en el cliente por lo que es mas seguro.
Ademas implemente dos vistas (copiadas y pegadas de la web de bootstrap) para mejorar la implementacion por defecto de los templates de spring para los endpoints de login y logout.