Integración Spring Boot 3, Keycloak, Oauth2: Lleva la seguridad a otro nivel
Vložit
- čas přidán 5. 08. 2024
- Descubre la combinación imbatible de Spring Boot y Keycloak y lleva la seguridad de tus aplicaciones al siguiente nivel. Aprende a construir una aplicación completa y segura, gestionando la autenticación, autorización y protección de recursos. ¡No te pierdas esta oportunidad de fortalecer tus aplicaciones con Spring Boot y Keycloak!
▶️ Repositorio de GitHub con el código fuente:
github.com/UnProgramadorNaceO...
▶️ Enlace al JSON de configuracion OpendID:
localhost:9090/realms/[REALM-NAME]/.well-known/openid-configuration/
🔔 Redes sociales 🔔
🔶Facebook:
profile.php?...
🔶Instagram:
/ unprogramadornaceofficial
🔶 Sígueme en LinkedIn: www.linkedin.com/comm/mynetwork/discovery-see-all?usecase=PEOPLE_FOLLOWS&followMember=unprogramadornace
🔶 Contacto:
unprogramadornace@gmail.com
⭐Donaciones⭐
paypal.me/unprogramadornace?c...
🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟
Si este video ha sido de ayuda para ti, por favor ayudame tú a mí con un poderoso like al video y suscribiéndote al canal para seguir creando más contenido como este.
🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟
📚Temario:
00:00 Introducción
01:37 Descargar e iniciar Keycloak
05:35 Cambiar puerto de Keycloak
07:23 Configurar Keycloak (Clientes, usuarios, roles, permisos)
29:44 Obtener un JWT con Keycloak
36:23 Crear aplicacion en Spring Boot
38:42 Configurar Banner de Spring Boot
39:35 Configurar Spring Security
43:42 Crear controlador de prueba
45:05 Configurar application.properties
49:20 Crear restriccion de roles sobre los endpoints
01:20:40 Crear, Actualizar, Eliminar, Buscar usuarios de Keycloak con Spring Boot
02:06:10 Crear controlador para CRUD en Keycloak
02:13:23 Testear toda nuestra aplicacion con POSTMAN
No olvides que un programador en Spring Boot y Keycloak, nace programando en Spring Boot y Keycloak. Práctica todo lo que puedas que la meta está a la vuelta de la esquina, solo debes ir por ella.
Si tienes alguna pregunta no dudes en escribirla en los comentarios.
Saludos!
#spring #springboot #keycloak #springsecurity #security #maven
Eres el mejor canal de youtube. Te mereces mi sueldo de practicante xd
la pucha que estaba largo y super completo, muchas gracias por toda la dedicacion que le metiste
en los 2 primeros minutos se ve la dedicación y empeño a crear este material de aprendizaje, muchas gracias!!
excelente taller de keycloak, se agradece el esfuerzo no es fácil enseñar, talleres como este simplifica la curva de aprendizaje para que posteriormente podamos sacarle provecho la documentacion de keycloak y poner en practica gracias
Con vez más fascinado con Spring Boot y las infinitas aplicaciones que se puede lograr. Muchas gracias de nuevo Santy por tus conocimientos que nos compartes! 👏👏
Como siempre, sin siquiera verlo agradezco tu esfuerzo, material garantizado en tu canal. Saludos
Mil gracias, ya estoy esperando el próximo video
Que grande, una joyita este canal!
Muy bien explicado todo, te mereces ese like y esa sub, gracias y mucho ánimo para continuar con ello!
Muchas gracias, excelente tutorial!
Sos un genio! Gracias por este excelente contenido
Muy bueno muchas gracias por compartir tu conocimiento 🎉
Éxitos con tu contenido, saludos desde Ecuador.
Excelente video, te agradezco por tremendo aporte. Sigue así.
Recien termino de ver el de JWT y me encuentro con este video. Muchas gracias por tan grande aporte!
Gracias, excelente de calidad tu contenido. Por favor continua con mas videos! Gracias!
Eres sin duda uno de los mejores explicando Keycloak y JWT en CZcams, muchas gracias! Podrías hacer para próximos vídeos los controladores para Spring Boot pero de grupos de usuarios y de asignación de roles??
Muchas gracias por tu comentario. Tendré en cuenta tu sugerencia.
¡Saludos!
¡Muy buen video!
Me ha servido de mucha utilidad.
¡Saludos y sigue así!
Que buen video, mil gracias
Con esto es que voy a subir de nivel, gracias buen hombre.
Excelente contenido gracias por tu aporte a la comunidad saludos desde Pereira Colombia 👍
Muchísimas gracias!!!
buenas noches saludos y exitos por compartir tus conocimientos sigue a delante
Caí de paraqueda na sua aula. Ganhou meu like. Parabéns!
¡Que buen vídeo!
Excelente video de principio a fin. Tenés mi like y suscripción. Muchas gracias.
Gracias por ello.
¡Saludos!
Excelente video !!! me encanto ! gracias por compartir
Muchas gracias a ti por comentar.
Saludos.
Excelente contenido.
muchas gracias por tus videos me has ayudado mucho con tu videos, ojala sigas adelante
Me alegra que mis videos sean de utilidad para ti.
¡Saludos!
Buen video, justamente lo que necesitaba para comprender mas afondo la administración de usuario con un endpoint desde spring boot, super gracias
Hola, muchas gracias por tu comentario. Me alegra que el curso te haya servido.
¡Saludos!
Jijuemare, de los mejores vídeos y profesores que he podido encontrar en youtube.
Muchas gracias por tu comentario.
¡Saludos!
Tan fino? muy buen video Doc.
Excelente video bro, me liaste de una.
he visto la serie de 3 videos entera y es estupenda... un gran trabajo muchas gracias
Gracias a ti por tu comentario.
¡Saludos!
Sería buen incorporar una serie de videos para subir tu app a un vps configurar el servidor e inclusive tu servidor de dominio ...
BUEN TUTORIAL TIO NACE.
Buenisimo video, bien merecido el like y el subscribe
Gracias
Gracias que buena explicación
Gracias por comentar.
¡Saludos!
muchas gracias por el video. Muy bien explicado, te mereces mi primer comentario de youtube
Gracias por el honor.
¡Saludos!
Me sorprende el excelente tutoríal que acabo de ver. De verdad de total calidad, muchas gracias, el mejor tutorial para aprender keycloak.
Gracias por tus palabras.
¡Saludos!
Excelente!!
Aquí dejando un súper like
Muchas gracias por ese gran aporte.
¡Saludos!
Eres un genio Master!! que buen aporte, podrias dar une ejemplo creando el auth-server desde cero?, es decir sin usar KeyCloak, esto pensando que solo se pueden instala aplicaciones en un servidor y no la herramientas ya creadas...
Gran aporte !!
Saludos
Muy buen video, si te apetece hacer videos del tema, algo sobre OpenShift estaría bueno, me suscribo 😌
Excelente explicación y video , me gustaría saber si podría haber un futuro video de implementar estos servicios ya desde el lado del cliente con JavaScript por ejemplo en React, seria interesante ver esa integración y como se le da el manejo a estos tokens y autorizaciones.
Excelente video, me gustaría que hagas de stream
Excelente video, me gustaría que hagas de stream, ya que explicas muy bien y se entiende todo.
Hola, muchas gracias por comentar. Voy a tener en cuenta su sugerencia.
Saludos.
La guía de streams también estaría genial.
Estoy trabajando en una empresa donde estoy aprendiendo Spring Boot, me encanta muchísimo todo el contenido que realizas, lo estoy implementando montón, tengo que crear un aplicativo implementando microservicios, y tu contenido me ha ayudado demasiado, por favor sigue subiendo mas sobre Spring Boot.
Hola, le alegro que mi contenido te haya ayudado a entender un poco mejor esta arquitectura. Gracias por tomarte el tiempo de comentar.
¡Saludos!
Muy buen video 👌🏻, pero el flujo que utiliza esta mas alineado con un servidor de recursos, es decir, la app de spring boot, la cual es un poco diferente al flujo normal de OAuth2.
En este caso la app de spring boot actual como servidor de recursos, no como un cliente. La aplicación trabaja esperando que el usuario tenga un token siempre, esta forma puede ser util cuando se tiene mucha confianza al usuario, pero nones tan segura.
Como deberia ser:
Cuando la app de spring necesite autenticar un usuario, esta deberia dirigirlo a keycloak o a otro servidor de autenticación.
Luego de la autenticación exitosa la app de spring deberia recibir y manerar un codigo de autorización dado por keycloak u otro servidor.
La app de spring deberia intercambiar el código de autorización por un token (que es lo que hace usted cuando lo solicita en postman)
Usar el token de acceso para dar permiso y acceder a la app segun los roles que ha establecido.
Así debería ser, lamentablemente aún no he encontrado un canal que lo explique así pero en keycloak, solo he encontrado como hacerlo con los servidores propios de Spring boot 😩
Por favor seria muy bueno hagas un tutorial de streams y un tutorial donde unas lo que diste con microservicios (eureka Discovery, server config, Gateway, spring security y keycloak). La idea seria mas que nada una guia de como setear el gateway y los microservicios, para limitar el acceso a los cada microservicio con spring security y que solo se pueda acceder los controladores por el gateway
Hola, lo tendré en cuenta. No olvides suscribirte al canal y dar like a los vídeos. Esa es la motivación para trabajar en nuevos videos.
¡Saludos!
Maestro si fuera posible crear una guía completa de strings estaría fabuloso
Muchas gracias por el video, te debo por lo menos una cerveza
Muchas gracias crack!
Salud por esa cerveza. 🍺
¡Saludos!
@@unprogramadornace hay alguna forma de desarrollar un endpoint con KeycloakBuilder en el API que desarrollaste, para poder hacer login sin usar directamente el servicio expuesto por Keycloak?
@@jorgealvarez5248 Hola, no se para que querrías hacer eso, la escencia de Keycloak es designarle la seguridad para que él sea quien la administre, si quieres crear un endpoint sin usar el servicio de Keycloak no deberías usar KeycloakBuilder, sino crearlo de la forma tradicional con Spring.
¡Saludos!
Excelente video, te ganaste un suscriptor, solo tengo una duda y es como puedo hacer para que los usuarios creados en el Realm adicional al master puedan inicar sesion en KeyCloak, saludos
Si pudieras en próximo video como realizar la autenticación con openApi swagger
Muy bueno el video. Muchas gracias. Tengo una consulta para quien me pueda responder. Al cerrar el servidor, intento terminarlo con Ctrl + C, pero no funciona, y después cuando intento volver a levantarlo me da error, y la única forma de conseguirlo es borrando los archivos generados en la carpeta data. ¿Hay alguna forma de conseguirlo? Porque entiendo que al borrar los archivos de la carpeta data, me toca empezar de nuevo. Gracias si alguien me puede ayudar
Hola, la verdad nunca me ha pasado. Espero que alguien sepa darte una respuesta. Saludos.
@@unprogramadornace Hola de nuevo, justo ahora acabo de encontrar una solución, al menos suficiente para levantar el servidor de keycloak sin eliminar nada. Recordemos que el error me surge después de que no cerrara correctamente con ctrl + c, y por tanto tener que cerrar la propia ventana para matar el proceso.
kc.bat start-dev --db-pool-initial-size 10
Si alguien tiene solución mejor no dejéis de comentar.
Gracias
Mil gracias, me pasó lo mismo y ni reiniciando el PC me iniciaba otra vez.
Que tal bro, muchas gracias por tu video, ¿hay manera de tener una explicación completa de todo Keycloak en general? me gusta tu manera de explicar las cosas porque con la documentación ando medio perdido
Hola, gracias por tu comentario. La verdad veo dificil ese video, pero tal vez lo haga a futuro.
¡Saludos!
Muchas gracias por compartir tu conocimiento se agradece excelente video, una duda keycloak es Open source puedo tener la cantidad de usuarios y terms que quiera?
Hola, si. Keycloak es una tecnología de código abierto. Entonces puedes tener la cantidad de usuarios que quieras.
¡Saludos!
Cuando dijiste llevarlo a otro es por qué es otro nivel 😂 apenas ando dominando Spring security y JWT XD
Poco a poco vas a ir dominando más temas.
¡Saludos!
Hola de nuevo, una duda, como configurarías la parte de "issuer-uri" para el TEST PHASE? esto pensando que en un CI se "dockeriza" la imagen del resource server y ese docker (que esta en el server de github) no llega al keycloak ??
Saludos !
Hola, ese tema es bastante extenso y es complicado explicartelo en un comentario, lo que yo haria para los test es unas testContainers para que en mis pruebas yo pueda apuntar a un servicio real dockerizado solo en la parte de pruebas, podria ser una opcion. Pero este caso es de puro analisis y revision de cual seria la mejor opcion.
¡Saludos!
Increible como tu canal puede llevar a un Jr a un nivel avanzado con tus videos. Excelente contenido.
Me alegra que el vídeo haya Sido de tu agrado.
Muchas gracias por comentar.
¡Saludos!
profe que recomiendas mas, estaba viendo el video de autenticacion con spring secutiry pero siento que es mucho mas complicado crear la autenticacion manual, y con keyclock siento que es mas facil manejarla, pero no se cual puede ser mejor si la autenticacion manual o esta que es mas rapida
Hola, tu observación es bastante interesante, con respecto a ello te comento lo siguiente:
Si no quieres preocuparte de la seguridad en tu aplicación, puedes usar software de terceros en este caso Keycloak, pero si tú mismo quieres encargarte de la seguridad en tu aplicación puedes configurarlo manualmente.
Ambas formas están bien y son correctas, todo depende de tu aplicación.
¡Saludos!
Felicitaciones , quería usar Keycloak para ayudarme a implementar el proyecto, seguí tus pasos y está funcionando, muy bien, ahora la pregunta que me queda es cómo puedo validar el vencimiento del token jwt, alguna idea.
Esto puedes configurarlo en Spring Security, pero el proceso lleva un poco de configuración y me es imposible explicartelo en un comentario. Creo que tendrás que googlear un poco.
¡Saludos!
Podrías hacer uno de AWS Cognito ? Me gusta como explicas
Hola, poco a poco iré agregando más contenido al canal. Próximamente comenzaré a abordar gemas de AWS.
¡Saludos!
Excelente material, te agradezco mucho. Sin embargo, en mi caso, repliqué lo hecho en el video, pero con una version de Spring Boot 3.1.4; hasta la parte de prueb sin configurar el Jwt en la clase SpringSecurityConfig bien, sin problemas. Cuando coloco el @PreAuthorize simplemente no funciona, me sale Error 403 en ambos casos con los usuarios admin y user, pero cuando se quitan esas anotaciones vuelve a la normalidad, ya probé tambien quitanto una por una cada anotación. Veré realmente cual es el problema porque es poco usual que se den esos errores. Seguí el tutorial hasta justamente la parte de probar las API's con las anotaciones. Solamente quise indicar ello, gracias por compartir tus conocimientos!
Hola, gracias por comentar. De hecho ese es el problema de trabajar con versiones tan recientes, de una versión a otra te cambian cosas, configuraciones y demás, tal vez eso sea lo que te sucedió.
De igual modo me parece excelente que te haya sido de utilidad el vídeo.
¡Saludos Crack!
Hola, sí funciona.
Recuerda que el nombre del rol debe ser tal como se asignó al client: @PreAuthorize("hasRole('admin_client_role')"), ya que Spring Boot los gestiona con la preposición ROLE, lo cual implementó @unprogramadornace en el método que extrae los recursos de los roles.
@@JohanEsteban , voy a revisarlo nuevamente. Gracias por tu comentario
Soluciono el problema de @PreAuthorize?? A mí también me da ese problema... Si lo resolvió , cuenteme que hizo
Amigo te recomiendo a que hagas una depuración y seguimiento del código de la clase Converter , en el método convert y extractResourceRoles haz un código que te permita saber si realmente esta funcionando correctamente, ya sea imprimir en consola las Autrhorities y los map y collection para ver si toman los valores que le corresponde. En mi caso pasaba que jwt.auth.converter.resource-id en el application.properties tenia un _ en vez de un signo menos - . allí debes de poner el nombre del cliente no del realm, además asegúrate que en la clase Provider cada constante estática este bien escrita.
Yo luego de ponerme a depurar cuidadosamente me di cuenta que realmente si funciona lo que me pasaba es que no se cargaban los roles , sino , en mi caso, se cargaban unos scopes, y solo por tener un pequeñito error tipográfico.
Excelente video me gustaria usar un cliente como angular.
Me gustaría saber si puedes dar una clase personalizada para implementar el uso desde un cliente como angular
Guardado para verlo, ya termine los de security y el de apirest, tengo una duda es necesario concurrencia para las consultas de base de datos harás algún video explicando eso? Desde ya muchas gracias por todos los videos
Hola, no es necesario concurrencia para bases de datos debido a que jpa usa un Singleton para hacer consultas entonces siempre usa el mismo objeto para hacer consultas, además jpa no está diseñado para funcionar con hilos entonces puede ser considerado como mala práctica.
¡Saludos!
@@unprogramadornace gracias por la respuesta vengo del mundo de node y es totalmente distinto y me confundo con algunos conceptos como promesas en javascript y etc
@@agustinibarrola8931 Es cierto, node està diseñado para ser No bloqueante por defecto y eso hace que Node sea muy rapido, en Spring Boot es està basado en Servlets y trabaja con peticiones bloqueantes. Sin embargo Spring boot tiene un modulo llamado Spring Webflux el cual utiliza programacion reactiva asi que podemos trabajar con peticiones no bloqueantes, exactamente como lo hace node pero eso es otro tema.
¡Saludos!
@@unprogramadornace harás algo de webflux más adelante?
@@agustinibarrola8931 Podría ser, será un tema que abordaremos más adelante.
Primero que todo muchas gracias por el exelente video, felicitaciones por tu trabajo!!! Tengo un problema segui paso a paso la guia del video, pero cuando estoy tratando de consumir ya los servicios creados para cosultar los usuario de keycloak desde el api, obtengo un error 401 Unauthoraized, cuando hago la peticion directamente al keycloak si me trae la lista de usuarios correctamente pero cuando hago la peticion desde el api obtengo el error de autorizacion. Agradezco la ayuda!!!
Hola, 401 significa falta de autorización. Quiere decir que no has otorgado los permisos necesarios desde keycloak. Usualmente si seguiste todo al pie de la letra tendría que funcionar, pero si no funciona, significa que algo quedó mal hecho o hay algo que no se hizo. Te recomiendo verificar la parte en dónde otorgamos los permisos desde keycloak para conceder el acceso.
Espero que eso te ayude y puedas encontrar la solución.
¡Saludos!
muchas gracias ´por el tutorial, me sirvio.
te queria consultar como podria hacer para el token sea de manera automatica, ya que voy a utilizar la autenticacion y autorizacion con un app de angular, desde ya muchas gracias y espero tu pronta respuesta. saludos
Hola, no entiendo muy bien a qué te refieres cuando dices que el tiene sea de forma si automática, podrías ser más específico por favor.
¡Saludos!
Que buen video bro, una preguntica, al agregar el token a mis peticiones me lanza error 431 por que la peticion es muy grande a causa del token, como podria solucionarlo?
Hola, nunca me ha pasado ese error entonces no sabría decirte, estoy seguro de que se puede solucionar pero en este caso deberías buscar en Google a ver si a alguien más le ha pasado.
¡Saludos!
Falto crear un login personalizado
Puedes hacerlo en react ? por favor para guiarme
primeramente muy buen video, muy bien explicado. al integrarlo en un proyecto con Angular, al hacer el login para obtener el token con keycloak me sale este error
'has been blocked by CORS policy'.
Seria de gran ayuda si sabes algo. Saludos
Hola, debes crear la configuración de los CORS en Spring Security, busca una implementación de CorsFilter, con eso lo solucionas.
¡Saludos!
@@unprogramadornace okey muchas gracias
Una lástima, en el 2:20:00 aprox. 500 por postman y 401 en consola. He revisado múltiples veces la configuración en keycloak, y es exactamente igual al video. La verdad es que es difícil entender la mecánica de roles y permisos, al haber Master y el Realm que creamos, y por otro lado admin_cli y el cliente que creamos. Agradecería si alguien me puede ayudar, aunque entiendo que por aquí complicado. Es como si en el video se explicara una cosa, pero luego realmente sea otra distinta.
En el vídeo, es el admin_cli del master el que tiene el role admin con los roles asociados, mientras que por código se supone que estamos usando el realm spring-boot-realm-dev, donde el admin-cli no tiene roles
Hola, usualmente 401 significa que te falta otorgar algún permiso. Por otro lado configuramos el admin_cli porque keycloak lo usa por debajo para poder funcionar y eso debe configurarse en máster, así lo decidieron los creadores de Keycloak entonces por eso se hace así. Lo que puedo aconsejarte es que trates de buscar la documentación o googlear como puedes configurar los permisos en keycloak para que puedas entender cómo funcionan y hacerlo.
¡Saludos!
Podrias por favor enseñar a como integar Keycloack para iniciar sesion con google. Pero que no se use el login de keycloak sino uno hecho en Angular.
Hola, nunca he integrado Keycloak con Google, sería una gran idea intentarlo, me lo voy a pensar.
¡Saludos!
@@unprogramadornace Seria genial, tambien me preguntaba si no es mucha molestia, como se puede usar authorization code para obtener el token y si es posible usar un login hecho en Angular para esto.
el enlace JSON no me funciona, ¿qué puedo hacer?
Hola, puede ocurrir por diferentes motivos, uno de los más comunes es que la configuración del Keycloak sea incorrecta, en ese caso te recomendaría verificarla nuevamente.
¡Saludos!
@@unprogramadornacebueno, gracias por responder.
@@Lashistoriasdelilith Espero que puedas solucionarlo.
Muy buen video, mi pregunta es como usariamos esto con microservicios
Hola, en microservicios la seguridad se maneja en el Gateway o puerta de enlace, allí puedes decidir si manejas toda la seguridad desde tu misma aplicación o utilizas un servicio como Keycloak.
¡Saludos!
@@unprogramadornace y como tendría que hacer toda esa configuración para que pueda poner el keyckoak en el gateway y se puede administrar en todos los microservicios que esten acoplados
@@enrique9872 Hola, es complicado explicarte en un comentario porque ese tema da para un curso completo. Lo que puedo decirte es que la seguridad se maneja en el gateway y el gateway es quien conecta con keycloak, ninguno de los otros microservicios debe la manejar seguridad debido a que el gateway es quien garantiza eso.
¡Saludos!
@@unprogramadornace has un curso de eso por favor, creo que seria un gran aporte para tu canal por que aplicando el crud en keyckoak y la seguridad no hay mucha información
Por que no funciona la anotación @PreAuthorize ??? Descargue el proyecto de Github y los ejecute tal cual, configure keycloak (clientes, realm, usuarios y demas ) asi como en el video, he revisado todo y no se porque no funciona 😬😔😩.... Alguien?
Hola, para trabajar con las anotaciones de Spring debes cumplir algunas condiciones:
1) Habilitar el soporte de las anotaciones con @EnableMethodSecurity
2) No puedes usar las anotaciones Al mismo tiempo de la configuracion del HttpSecurity en el SecurityConfig, debes elegir uno solo. Si usas anotaciones no debes usar requestMatchers.
Espero que eso te ayude a resolverlo. Es El error mas comun.
¡Saludos!
@@unprogramadornace Entiendo, pero es que no lo he modificado en nada, lo descargue desde su repositorio de github y así mismo lo ejecute, lo unico que le cambie fueron lo nombres de los roles en la anotacion @PreAuthorize(....) y las URIs en el application.properties. Tengo la misma version de java, la cual es la 17, la misma version de spring boot que es la 3.1.1 y no entiendo porque. Probe la clase Provider individualmente y funciona, al igual que la clase de servicio que se encarga de gestionar los usuarios dentro de Keycloak .....
@@unprogramadornace eso fue la primera vez que lo ejecute. Luego probe poniendo los roles del Realm en vez de los roles del cliente y nada. Voy a probar quitando las anotaciones y configurar las rutas y roles desde el SecurityFilterChain a ver si funciona...
@@unprogramadornace Ya encontré el problema, solo era un signo - pues debido a que el realm y el cliente tiene casi el mismo nombre, solo diferenciándose por unos (-)y ( _) lo que hacia que los roles no se cargaran de forma correcta, lo que se cargaba eran los scopes . ajajaja
Bro se puede hacer un metodo que realice el login?
Hola, desde luego que si. Todo lo que quieras hacer se puede hacer por medio de la programación.
¡Saludos!
@@unprogramadornace 🥺 no tendrás por ahí una guía ?
@@JurgenMolina Lastimosamente no. Estas son cosas que se suelen resolver con conocimiento del Framework o googleando ya que son cosas bien específicas.
¡Saludos!
Esta seguridad se puede integrar a jwt?
Si te fijas bien estamos usando JWT en el proyecto.
¡Saludos!
@@unprogramadornace Si pero el problema es que en mi api ya tengo lo que me enseñaste en el video de jwtSecurityfilterchain , y mi aplicacion me genera un token para el login de jwt , y otro para el login de keycloak, y cuando quiero entrar a los endpoint de hello , mi seguridad choca con la otra , y me dice que el token no es correcto . Se puede tener las dos configuraciones tanto la del video de impementar spring security jwttt y oauth juntos? y como hago para que me reconozca el token de oauth el TestController ? basicamente me da este error 2023-11-08T11:06:08.288-03:00 ERROR 26288 --- [nio-8080-exec-1] c.t.TB.security.jwt.JwtUtils : Token invalido, error: The parsed JWT indicates it was signed with the 'RS256' signature algorithm, but the provided javax.crypto.spec.SecretKeySpec key may not be used to verify RS256 signatures. Because the specified key reflects a specific and expected algorithm, and the JWT does not reflect this algorithm, it is likely that the JWT was not expected and therefore should not be trusted. Another possibility is that the parser was provided the incorrect signature verification key, but this cannot be assumed for security reasons.
gracias
@@user-dj3gr6od2z La verdad nunca lo he trabajado de esa manera, usualmente se le delega toda la seguridad a Keycloak o se implementa por si sola en el proyecto. Nunca lo he trabajado en conjunto. En ese caso no podría ayudarte.
¡Saludos!
Claro mi idea es que primero verifique la secret key de jwt y si falla que valla a la de oauth . Muchas gracias
vine buscando cobre y encontré oro
Soy de Colombia también. Me gustaría donar por Nequi
Hola, muchas gracias por tu comentario.
En la descripción de todos los vídeos de mi canal siempre hay un email de contacto. Si gustas puedes enviarme un email para contactarme.
¡Saludos!
Hola parcero, muy buen video tutorial. Gracias.
Había implementado Keycloak en Docker bajo stage de PROD, y este lleva certificado de SSL y por ende no me funcionaba desde Spring Boot si no se le indica la configuración con el respectivo certificado. Posteriormente implementé Keycloak en stage dev y este me funciona perfecto.
@unprogramadornace ¿Alguna vez haz desplegado Keycloak en PROD usando SSL?
Hola, desearía poder ayudarte, pero no he tenido que manejar SSL con keycloak. Creo que tendrás que googlear la forma de implementarlo.
Espero puedas solucionarlo.
¡Saludos!
si les tira este error java.lang.NoSuchMethodError: 'org.jboss.resteasy.spi.ResteasyProviderFactory
yo lo solucione removiendo esta dependencia 'org.jboss.resteasy:resteasy-jaxrs:3.15.6.Final'
Espero les sirva saludos.
Me sirvio gracias
Al quitar esa dependencia, también quito la parte donde se usaba, es decir, en el método getRealmResource()???