22 de diciembre de 2023, he llegado aquí ya que los cursos de spring boot de Udemy están muy desactualizados y no encuentro que sean tan bien explicados, pero realmente que este señor explica muy bien! Opinion: No cabe duda que tendrías muchísimos estudiantes en Udemy
@@unprogramadornace Oye, de plano, deberías aventarte un curso así en Udemy, te lo aseguro, aquí tienes al primer comprador 🙋♂ Eres excelente enseñando, estimado.
Hermano estaba que me pegaba un tiro con un banano porque no encontraba una buena explicación y cuando había perdido las esperanzas youtube me recomendó esta clase magistral ave maria purisima
Amigo, muchas gracias de verdad! excelente video, estoy estudiando ing de sistemas y este tema me estaba pareciendo bastante complejo, he visto los videos tuyos y he entendido por fin, que gran aporte, de verdad Dios te pague por esto.
ya termine el primer video jaja un video de 1 hora para mi son como 2 o varios dias jaja ya que yo le hago codigo y veo que hace estudio teoria etc jaja no solamente copio todo sin saber que hace pero ya entendi mucho y ya se que a partir de spring security 6.1 todo debe ir dentro de lambads y lo hacen asi ya que cuando llegue a spring security 7.0 quitaran todo lo que esta en depecrated y sera la nueva forma de trabajar ya encontre la documentancion de 6.1 de spring security donde explican eso jeje muy bien explicado todos tus videos amigo
Excelente, my friend. Sigue así. Ahora veré Jasper report. Veo que tiene un tuto de Apache Kafka, en el trabajo lo vi con xml y me mareó; espero que haga otro video con ese tema. Saludos.
Hola, tendré en cuenta tu sugerencia. No te olvides que si mi vídeo fue de ayuda para ti, ayúdame tu a mi con un like al vídeo y suscribiendote al canal. ¡Saludos!
Es espectacular este video locura!!! saludos desde argentina... literalmente fue la mejor desicion del dia mirar tu video para utilizar spring boot! estaba con muchas dudas de seguir utilizando este software pero ahora claramente me despejaste al 100% simplemente espectacular! hasta el proyecto de github dejaste... 10 de 10... si estan leyendo esto y se quieren ir a mirar una peli o serie quedense aca que este video es mejor que breaking bad jajajaja, ademas que lo aprendido queda fuertemente arraigado.
Muchas gracias por tomarte el tiempo de comentar, me alegra mucho que mi vídeo haya hecho cambiar la perspectiva que tenías sobre Spring. Sigue así crack. ¡Saludos!
Vaya... qué excelentes cursos. La mejor explicación que he visto hasta el momento, es increible la manera que no hace sentir pesado un video de +2 horas, mientras que en otros canales con esa duración no llego ni a la mitad porque me pierdo y abruma la cantidad de cosas que hacen. Qué increíble canal!
Hace nada conozco este canal y es una locura el curso de Spring Security, la mayoría así de explicativos y extensos, están en inglés. Una joya escondida total. ¿De casualidad implementarás con OAuth2?
@@unprogramadornace Hola, excelente curso. porfin descubri lo que tenia que hacer para mi e-commerce. Ya me estaba dando la cabeza contra la pared porque no sabia como empezar con este tema. seria bueno lo que comenta el amigo mas a arriba un video explicando como lo hariamos con OAuth2. Muchas gracias por tan excelente y muy bien explicado contenido.
EXCELENTEMENTE explicado y funciona a las mil maravillas muchísimas gracias por compartir solo falto explicar como inhabilitar el token o que se anule digamos después de 30 minutos de inactividad por parte del usuario?? podridas hacer un tutorial de ese tema???? seria fantástico Nuevamente MUCHISISMAS GRACIAS POR COMPARTIR TUS CONOCIMIENTOS
Hola, creo que estas juntando temas, cuando trabajamos con tokens no manejamos sesiones, el tiempo de acceso está marcado por el tiempo de vida del token mas no manejamos sesiones, cuando el filtro detecte que el token está vencido denegará el acceso. ¡Saludos!
Buenísimo, espero pronto poder apoyar económicamente contenido de tan buena calidad. De momento mi humilde like y suscribir. Gracias por el tutorial, estuvo algo extenso pero la diferencia con otros tutoriales radica en que cada segundo del video tiene un aporte, información o dato útil.
Quería destacar que buen contenido, lo claro que está explicado, sin distracciones y con detalles que no he visto en los cientos de tutoriales que vi sobre el tema. Apoyen el canal.
Por tu acento asumo que eres de Colombia, por el lado de las tierras paisas. Muchas gracias por tu contenido, y tomarte toooodo el tiempo para explicar cada detalle. Creo que no había visto tutoriales tan detallados y actualizados en español. Saludos desde Pereira
Es una locura este curso, es bastante mas complejo de lo que esperaba JWT, sin embargo me da la sensación que la configuración es compleja, y que hecha una vez y estar correctamente modularizada, es cuestión de copiar e insertar en los proyectos y posteriormente ir configurando algunos detalles de acuerdo a cada proyecto. Sin embargo es fundamental entender correctamente su funcionamiento y cada linea de código que uno inserta en su proyecto, si no al final no estas aprendiendo nada. Muchas gracias por aportar este contenido a la comunidad y espero que sigas publicando material !
Fue más complejo que el anterior claramente, pero demasiadoooo educativo, me descargue el JWT Handbook para profundizar y entender mejor como firmar los tokens al momento de generarlos y verificar si son validos con nuestra propia firma, el viaje continuo, muchas gracias, sending rays of love from Florencia
Hola Emerson, muchas gracias por tu comentario. Es cierto, hay todo un mundo detrás de JWT, me parece excelente que hayas pensado en ir más allá de lo que enseño en el vídeo, felicitaciones. ¡Saludos!
Acabo de terminar este curso, esta super bien explicado y detallado, gracias por esta aportación, espero y en algun momento puedas hacer un curso relacionado con microservicios, la verdad creo que estaría genial!. saludos.
Hola excelente video y explicación, podrías continuar con la serie, por ejemplo con las mejoras de no tener las claves definidas en la clase principal....
Hola, no entiendo a que te refieres con tener las claves en la clase principal. En El metodo main solo tenemos un codigo para insertar datos de prueba a la base de datos, pero son solo eso. Datos de prueba. En una aplicacion real no debes poner eso. ¡Saludos!
@@unprogramadornace Disculpa me explique mal, en la marca de tiempo 1:33:56 indicas que seria mejor no colocar el password ahí ya que es información sensible, pero luego igual la colocas, para los que estamos comenzando recién nos deja una duda, tiene que ir ahí? o no?, cual es la mejor practica?.. de nuevo muchas gracias por la explicación, de todos los videos de este tema es uno de los mejores.
@@JuanPablo-he4cx Hola, en el minuto que señalas, es completamente necesario que capturemos la contraseña. Esto significa que la forma en que se explica en el video es la correcta de hacerlo. ¡Saludos!
Una de las mejores explicaciones que he visto, o la mejor incluso. Muchas gracias. No dejes de hacer vídeos, por favor. De sugerencia a solicitar un proyecto con microservicios y relaciones many to many, one to many y/o one to one, estaría genial, pero aplicando microservicios y spring cloud si es posible. Muchas gracias nuevamente.
Hola Josue, muchas gracias por tu comentario, las relaciones de JPA suelen ser iguales cuando se trabaja con microservicios y monolitos, no cambian. De igual modo tengo en mente subir algún contenido de microservicios más adelante. ¡Saludos!
Excelente vídeo, me ha sido de gran ayuda, muy bien explicado, todo un crack mi hermano, demás felicitarlo por compartir su conocimiento a quienes estamos iniciando en este rama bonita del desarrollo de software con el lenguaje Java y Spring Boot
Una locura estos cursos, deberías implementar una comunidad en discord para que la gente pregunte acerca de cualquier inconveniente al momento de realizar los paso a paso
Hola Jose, muchas gracias por tu comentario. Poco a poco iré agregando nuevas cosas al canal, tu sugerencia es una gran idea. En algún momento podría hacerlo. ¡Saludos!
Gracias nuevamente!!!! comenzando el segundo y me da gusto ver la calidad de curso. Eres una gran ayuda hermano, espero sigas creciendo y puedas seguir subiendo buen contenido.
Me encanto como explicas todo, acabo de montar por primera vez JWT con Spring. He visto tu video y he entendido muchas cosas que había hecho sin saber muy bien por qué. Estaría muy bien que hicieras otro video extendiendolo con los refresh token. Muchas gracias por compartir tus conocimientos!!
Al fin termine de verlo y me parece más genial aún, ya que no había visto algo tan bien explicado además de tu experiencia en su implementación tan bien segmentada...ORO PURO... muchísimas gracias.
Muy buena clase! ganaste más un inscrito. Solo tengo una duda, "¿Debo usar jjwt-api o java-jwt? Aparentemente, java-jwt no tiene actualizaciones desde el 31 de marzo de 2023 y jjwt-api tuvo su última actualización el 21 de junio de 2024. No sé si java-jwt ha sido descontinuado y ahora jjwt-api lo reemplaza, o si no hay actualizaciones en java-jwt porque ya está estable, mientras que jjwt-api aún está inestable. Quiero ayuda para saber cuál elegir."
Excelente contenido, muchas gracias. Todo muy claro, definitivamente uno de los mejores videos que he visto. De verdad que mereces muchas más vistas y subscritores. Ojalá que sigas subiendo contenido. ¿Tendrá una tercera parte? Por ejemplo, autenticarse con google o con keycloack que suena mucho, saludos👍👍
Hola Rodrigo, muchas gracias por el apoyo. Tengo en mente seguir ampliando la serie de Spring Security con nuevos temas. En algún momento vendrán nuevos videos. ¡Saludos!
Acabo de terminar el primer video, me parece increible, en la ultima version de Spring Security hay metodos deprecados que aqui no estaban. Bueno, es tan bueno el curso, que no importa, me has dado el conocimiento y las herramientas para resolver mis problemas en un momento.
Es cierto, hay algunos métodos que están deprecados, la razón es que en versiones posteriores se configura la seguridad usando expresiones lambda. Ese es el problema de trabajar siempre con lo más actualizado y es que muy frecuentemente van saliendo cosas nuevas. ¡Saludos!
Like y suscripto!!! Muy buen contenido, super explicado todo! Pregunta, toda esta configuracion y creacion de clases, metodos, etc... está en la documentacion o tu lo sabes por tu experiencia y conocimiento general? Gracias!
Hola, gracias por comentar y suscribirte. Te comento: Las implementaciones de las clases y la lógica la hice por experiencia, la documentación usualmente te da ejemplos básicos y ya eso lo adaptas a tus necesidades. ¡Saludos!
Excelente explicación, he buscado varios videos y creo que es la mejor en español sobre este tema. Seguí sacando videos que explicas con mucha claridad! Lo único que sí estaría bueno es que pongas la letra un poco mas grande (a los que tenemos monitor pequeño se nos complica ver XD).
Un curso espectacular y muy detallada la explicación. Vengo luchando con la seguridad desde que nació Struts (ya olvidado), la unica contra con el avance de estas tecnologías es lo tan rápido que se "deprecan" ciertas clases. Te hago una consulta, esta explicación es compatible aplicarla a una Api Gateway? Tengo una app con microsservicios ya funcionando (las bases de datos en Docker) y necesito agregarle seguridad, pero la duda es que el microservicio gateway tiene ciertas definiciones que no se como impactan con la seguridad. Muchas Gracias!! y Saludos!
Hola, si lo vas a usar como API gateway debes configurar algunas cosas adicionales pero en general la esencia sería la misma. Pero bueno, no es algo que una búsqueda en Google no pueda solucionar. ¡Saludos!
Un dolor de cabeza todo jajaja pero al final se pudo, muchas gracias 🙏, es increíble como en tan solo 2 meses varias cosas que se usan acá ya están deprecated pero investigando o probando cosas se soluciona.🤕
Hola, es cierto. Ese es el problema cuando se trabajan con tecnologías tan nuevas. Pero si se entienden los conceptos la sintaxis es lo de menos. ¡Saludos!
Amigo se me escapo otra pregunta veo que muchas personas en otros videos crean el UserDetails dentro la entidad que llaman por ejemplo usuario pero otros crean de la entidad y crean otra clase llamada UserDetails para implementar los metodos pero en tu caso sobreEscribres el UserDetails en tu clase UserDetailsService, mi pregunta cual seria la forma mas ideal de hacer esto ?
Wooow!! que genial explicas y te das el tiempo apropiado para ahondar en cada punto... Siguiendo este hito, podrías dar un ejemplo de Oauth2 y/o un Authentication Server porfa? Saludos y exito !
muchísimas gracias hermano, que calidad son tus videos tienes una facilidad para hacerte entender, me imagino que eres profesor xq explicas muy bien, de casualidad habrás explicado exceptions?
Hace un año hice un bootcamp donde aprendi tambien algo de seguridad. En un solo año ha cambiado varias veces la forma de hacer la configuracion... cuando busco ayuda online encuentro turoriales que cuando aplico, ya me salen funciones deprecadas ... es muy cool todo pero, tras de que no es facil, estan deprecando todo cada rato uff
Master, excelente contenido. Tengo un par de dudas, que me gustaria entender. 1. Para actualizar esta implemetación, deberia revisar la documentación y actualizar las dependencias para no utilizar las clases deprecadas o recomiendas ver los ultimos videos que publicaste ? 2. En el caso de que no envien el token deberia crear de una vez una excepción donde retorne el 401 ? Donde se deberia hacer esta implementación ? Tienes algún ejemplo ?
Hola, con respecto a tus 2 inquietudes te comento lo siguiente: 1) Ya subí un vídeo con las actualizaciones correspondientes, puedes verlos en el canal. 2) Si no se envía ningún token entonces el filtro de validación de token va a falla y por defecto se enviará un 401, entonces no tienes que implementar ninguna excepción personalizada, podrías hacerlo, pero no es necesario. ¡Saludos!
Hola, excelente video. Tengo una duda sobre como creas los controladores. No es una mala practica mapear y poner lógica dentro del controlador en lugar de mandar a traer al servicio para que se encargue de eso? No se supone que los controladores solo reciben peticiones y envian respuestas?
Hola, todo depende. En este caso lo hice así para explicar el tema de seguridad, pero en una aplicación grande y escalar se podría poner la lógica en el Service. ¡Saludos!
Buen video, una duda y en el caso de que no quiera harcodear los roles en anotaciones ni en el filterChain, sino tomarlo desde la bd y asi poder crear tantos roles como desee que alternativa tomarias.
Mmmm! En ese caso estás poniendo las cosas muy difíciles, la configuración usualmente se maneja así. Tal vez la alternativa que tomaría sería obtener los roles de un archivo.properties y setearlos allí e implementar alguna manera de guardar los roles dentro de ese archivo .properties, no sé cómo lo haría pero intentaría eso. ¡Saludos!
Amigo genial tu video, estoy empezando con Spring Security y estos videos me vienen de 10, consullta en mi security tengo seteado que con /logout pueda desloquearme pero me arroja un error cuando hago clic en una etiqueta que contiene el enlace a href="/logout , pero si lo hago dentro de un form que envie el action="/logout/ a traves de un metodo POST funciona.
Hola, usar un no es la forma adecuada de hacer un logout porque eso hará una petición GET y GET no es una forma confiable de manejar seguridad. Siempre lo mejor es manejarlo con un formulario y hacer un POST. Entonces en este caso mi recomendación es que lo manejes a través del form. ¡Saludos!
@@unprogramadornace genial gracias spor tu respuesta y quién nos da un curso pagado , no enseña deshabilitando el método csrf().disable() osea lo que tú explicas que no es aconsejable deshabilitar 🤦🏽♂️
@@unprogramadornaceclaro entiendo, por eso la persona de mi curso deshabilita esa seguridad que explicas que no debe ser deshabilitada a la hora de enviar un formulario. En fin agradezco muchísimo tu vídeo ojalá sigas subiendo amigo y gracias por compartir tus conocimientos, genio!
@@intercambioradial Esa propiedad es muy usada en Spring MVC ya que tu trabajas con formularios, en esos casos no es recomendable inhabilitar esa propiedad, pero si trabajar con servicios REST en donde conectar un FrontEnd con un Backend usualmente se inhabilita porque tu solo recibes peticiones que te envía el Front. !Saludos!
Buenas, antes de nada, dar las gracias por tan extenso y avanzadas explicaciones, son increíbles. Obvio me han salido durante la formación más dudas, sobre todo con los builders, objetos mediante stream, Function de funciones lambda ... pero bueno, cada cosa a su debido tiempo. A mi me surge una duda. Cada vez que me sale un error (normalmente es con algún Bean), con el mensaje de error de spring, no suelo saber por dónde ubicarlo. En java, si da un error normalmente indica en que clase ocurre. ¿Hay alguna forma de realizar test o cómo acotar por dónde viene el error? Ojala pudieras hacer un vídeo sobre ello si es que tiene algún truco, porque como digo, a mi me cuesta una barbaridad a pesar que me indica el nombre de la inyección.
Hola, spring normalmente suele ser claro con los errores que muestra y da detalles, el tema es que es necesario conocer bien cómo funciona spring. Mi consejo sería aprender muy bien como funciona spring por dentro, es decir el core. Si conoces el funcionamiento de spring entenderás mejor los errores que te muestra. ¡Saludos!
@@unprogramadornace Muchas gracias! justo ahora estoy intentando aplicar las directivas creadas en tu curso, jwtauthentication y authoirizacion a otro proyecto que estoy haciendo. Como era obvio, iban a salir problemas, así que me toca justo lo que dices, ir removiendo los interiores de spring para conocer de él. muchas gracias por la respuesta :)
@@unprogramadornace Perdona que te moleste, hay formación oficial de spring? o no queda otra que ir picoteando la documentación, ver explicaciones como la tuya y probarlo todo?
😪😪 ,yo tengo todo en el mismo color, encontre una conf para setear en application.properties pero no hay caso,gracias por responder, y excelente contenido @@unprogramadornace
que buen video amigo felicidades por tu trabajo estare ansioso por mas videos tuyos, solo me quedo una duda quisiera hacer un backend similar a este y consumirlo desde flutter mi pregunta es como el usuario puede registrarse solo ? osea solo colocar el endpoint permitall? y cuando loguea ahi darle un token ? o estoy equivocado si puedes darme una luz quisiera hacer una aplicacion con flutter que el usuario pueda registrarse solo que ahi le mande un link de activacion a su email para que despues pueda loguear tranquilo saludos :3
Hola, no logro entender muy bien lo que quieres lograr, lo que comúnmente se usa es crear un formulario en el que se piden los datos del usuario para guardarlos en la tabla user, allí ya quedaría registrado, si deseas enviar un email de confirmación normalmente se envía un link y ese link debe apuntar a un endpoint en el backend en el cual se le daría el permiso de acceso a la aplicación aunque siempre toda lógica de autenticación y autorización depende de las necesidades de la aplicación y se puede implementar de diferentes maneras. ¡Saludos!
De verdad que tus videos me han ayudado a comprender Spring security, muchas gracias. Tengo una pequeña pregunta, ahora mismo ya no está la versión 3.0.7, cual sería la ideal para trabajar en estos momentos?
Hola, el problema es que todo cambia muy rápido, yo diría que selecciones cualquier versión que siga 3.0, el tercer número no importa mucho porque son mejoras, si seleccionas 3.1 la sintaxis cambia un poco. Aunque si comprendes los conceptos de spring security la sintaxis es lo de menos. ¡Saludos!
¿Que versión de Spring Security se trabajó? En el método authenticationManager, obtengo un error de que "and()" esta deprecado y no puedo culminar el método
Hola, se trabajó con Spring boot 3.0, si estás usando Spring boot 3.1 te va a botar un error en el "and()" debido a que esa nueva versión de Spring Boot te obliga a configurar Spring Security con expresiones Lambda para que lo tengas en cuenta, es muy probable que tu error sea porque estás trabajando con Spring boot 3.1. ¡Saludos!
@@sebastiantoscano4203 Hola, todas las configuraciones se hacen con Lambdas, cada una de las opciones de configuración reciben Lambdas entonces es difícil decirte exactamente cuáles porque son demasiadas opciones.
Hola! Soy nuevo en Spring y estoy implementando lo que he aprendido en este tutorial a mi proyecto... pero tengo un problema, me consigo autenticar por medio de postman (por ejemplo), pasando las credenciales en Json en el body de la request. Pero cuando intento hacer login por medio de interfaz normal de usuario (formulario html para login), me da error la linea: userEntity = new ObjectMapper().readValue(request.getInputStream... (debido a que espera un json y no un formulario URL-encoded. Cómo puedo soluciona esto? Gracias por tus tutoriales! Saludos
Hola, allí habría que cambiar un poco la lógica, sin embargo este video usa una versión de spring security desactualizada, ya está disponible la actualización del curso en el canal. La encuentras en el siguiente enlace: th-cam.com/video/wzGCBZCknUs/w-d-xo.html ¡Saludos!
Hola, Spring Boot 3 y Spring security 6 salieron hace muy poco tiempo, cuando son tecnologías tan recientes normalmente se van haciendo mejoras continuamente, eso quiere decir que van a hacer cambios constantemente y por eso te aparecen deprecated algunas cosas. Ese es el precio a pagar por siempre usar lo último. ¡Saludos!
Bro, yo me acostumbre a tu vídeo de las api, y veo que aquí usas models y no entities. Hay alguna razón para eso ? O cual debo usar de ahora en adelante , son cosas que no me dejan dormir 😬
Buen dia amigo, de antemano muchas gracias por todos esos videos donde enseña de manera clara, estoy siguiendo este tutorial hace tiempo, solo que e tenido problemas y no me genera el token, he hecho varias cosas intentado soluconar pero no he podido, primero salia algo relacionado que la clave secreta era muy corta, la cambie y ahora me sale un error que dice textualmente "Illegal base4url charactter: '$'. le gradezco si me puede colabroar. no se que mas intetar
Hola, puedes pasar por muchas causas diferentes y es difícil darte una respuesta sin ver el código que estas escribiendo. En la descripción de este video se encuentra un enlace al curso actualizado a 2024 por si lo quieres ver. ¡Saludos!
@@unprogramadornace parcero precisamente estoy en ese vídeo y en el anterior a ese (el que recomiendas ver primero) y hasta ahora todo ha salido bien, vamos a ver cómo me termina de ir, la buena 👏🙏
Lo primero de todo que darte las gracias por este fantástico video, es una auténtica maravilla cómo explicas todo con tanto detalle. También quería hacerte una pregunta. Cuando hago el login para que me devuelva el token en Postman, me obliga a que la petición que le haga sea de tipo GET en vez de POST, y esto me causa bastantes problemas para el front, ya que no puedo enviar body en una petición de tipo GET. ¿Alguna idea de a que se debe? Saludos y gracias por este contenido
Hola, en la clase que usamos en el vídeo solamente trabajamos con POST debido a que un login con GET es una vulnerabilidad debido a que GET te muestra los valores que envías dentro de la URL. Ahora imagínate mostrar el usuario y la contraseña de tu cliente en la URL, completamente inseguro. La verdad no sé muy bien que se haría allí debido a que siempre los login se manejan con post, creo que deberías buscar alguna implementación de un filtro que por defecto no use post. ¡Saludos!
@@unprogramadornace Gracias por la respuesta. El problema que tengo es que quiero usar POST, pero cuando lo uso me dice que no está permitido, y solo puedo acceder usando el login. Lo que quiero solucionar es que no me deje usar el GET y poder usar el POST
@@angelj.2835 Trata de autorizar la URL desde la configuración de Spring Security aunque insisto que usar GET en un login es un problema de seguridad, yo diría que trates de solucionar el problema pero usando POST ya que GET no se usa para login. Aunque si estás usando la clase que usamos en el vídeo no deberías tener problema. ¡Saludos!
@@unprogramadornace Gracias, voy a intentarlo, aunque he seguido la clase tal cual, probaré de nuevo. También quiero solucionarlo por lo del problema de seguridad. Muchas gracias de nuevo 😊
@@unprogramadornace acabo de solucionar el problema. Se me olvidó poner .csrf(config -> config.disable()). De nuevo, gracias por el video. P.D.: Me voy a mirar el nuevo que has subido que tiene muy buena pinta :)
Hola. De poder hacerse si se puede, pero debes tener mucho cuidado porque los récords se usan SOLO para crear clases INMUTABLES, solo por eso hay que tener mucho cuidado. No es buena práctica usar clases inmutables para crear Entidades, mi consejo, es que debes dominar la inmutabilidad de clases para saber en qué situaciones conviene usar records. ¡Saludos!
a la api que hicimos en el cap anterior con buenas practicas, le puedo añadir seguridad ? es decir, a la anterior para practicar con aquella debo crear una clase nueva para roles o se hace de otro modo
En el capítulo anterior también trabajamos con Spring security. No entiendo a qué te refieres con "le puedo agregar seguridad". Justamente eso fue lo que hicimos. No sé si te estás confundiendo con algún otro video. ¡Saludos!
@@unprogramadornace yo a ese proyecto , siguiendo las bases de tus vídeos lo cambie a una api crypto y agregue las validaciones. Lo que quiero es que me sirva para el portafolio, por eso pregunto. Así faltaría nomas la seguridad
@@Shinigami4rt se pueden agregar muchas cosas más, pero para portafolio estaría bien, incluso sin seguridad. Pero está más que así como lo tienes pensado. Lo más importante es que sepas lo que haces y sepas que es lo que hace cada parte de tu código porque te lo van a preguntar en la entrevista. ¡Saludos!
Hola, primero que todo buen video, he pasado horas y hasta días aprendiendo y repasando lo que dices. Solo tengo un problema casi al final del video y es que se me queda en error 401, ¿Alguna solución de por donde empezar? No hay excepciones ni mensajes de error... No sé que pueda ser
Hola, el error http 401 siempre es por falta de autorización, eso quiere decir que no estás proporcionando los permisos necesarios para acceder a dicho recurso. Te recomiendo mirar bien los roles y la configuración de acceso a los endpoint, verifica muy bien los permisos que estás otorgando, allí debe estar el error. ¡Saludos!
22 de diciembre de 2023, he llegado aquí ya que los cursos de spring boot de Udemy están muy desactualizados y no encuentro que sean tan bien explicados, pero realmente que este señor explica muy bien! Opinion: No cabe duda que tendrías muchísimos estudiantes en Udemy
Muchas gracias por tomarte el tiempo de comentar.
¡Saludos!
@@unprogramadornace Oye, de plano, deberías aventarte un curso así en Udemy, te lo aseguro, aquí tienes al primer comprador 🙋♂ Eres excelente enseñando, estimado.
@@brandonisaacfonseca8377 Muchas gracias por tu comentario y tus palabras. Tomaré muy en cuenta tu sugerencia.
¡Saludos!
El mejor video que he encontrado, la mejor manera de explicar, rapida, clara y completa, me encantaria que esta serie continuara
Una obra de arte es este pequeño curso de spring security, te agradezco muchisimo por esta colaboracion. Saludos!
Hermano estaba que me pegaba un tiro con un banano porque no encontraba una buena explicación y cuando había perdido las esperanzas youtube me recomendó esta clase magistral ave maria purisima
Siempre había escuchado que spring es fácil de aprender pero difícil de entender. Pero en este canal se me ha hecho fácil las dos cosas. Mil gracias
Excelente curso de Spring Security 🥳, gracias por compartir tus conocimientos profesor 🙌, saludos desde Perú.
excelente curso de Spring security. en las dependencia jjwt-root hay que añadir pom para que la reconozca
Amigo, muchas gracias de verdad! excelente video, estoy estudiando ing de sistemas y este tema me estaba pareciendo bastante complejo, he visto los videos tuyos y he entendido por fin, que gran aporte, de verdad Dios te pague por esto.
Muchas gracias por comentar tu experiencia con mi video. Me alegra saber que te ayudó.
¡Saludos!
ya termine el primer video jaja un video de 1 hora para mi son como 2 o varios dias jaja ya que yo le hago codigo y veo que hace estudio teoria etc jaja no solamente copio todo sin saber que hace pero ya entendi mucho y ya se que a partir de spring security 6.1 todo debe ir dentro de lambads y lo hacen asi ya que cuando llegue a spring security 7.0 quitaran todo lo que esta en depecrated y sera la nueva forma de trabajar ya encontre la documentancion de 6.1 de spring security donde explican eso jeje muy bien explicado todos tus videos amigo
Me parece muy bien tu forma de estudiar.
¡Saludos!
Hola Excelente serie
Te agradezco mucho le dediques tan valioso esfuerzo a compartir tus conocimientos
Excelente video mi estimado, se aprecia mucho lo que haces por la comunidad. Saludos cordiales.
Gracias por apreciar mi contenido.
¡Saludos!
Nuevamente muchisimas gracias por compartir tan valiosa capacitacion
Increíble Máster, he terminado de ver tus videos y me quedó todo claro y entendible, continua así, tienes mucho talento. Saludos desde México.
Muchas gracias por el apoyo.
¡Saludos Crack¡
Excelente, my friend. Sigue así. Ahora veré Jasper report. Veo que tiene un tuto de Apache Kafka, en el trabajo lo vi con xml y me mareó; espero que haga otro video con ese tema. Saludos.
Hola, tendré en cuenta tu sugerencia. No te olvides que si mi vídeo fue de ayuda para ti, ayúdame tu a mi con un like al vídeo y suscribiendote al canal.
¡Saludos!
Es espectacular este video locura!!! saludos desde argentina... literalmente fue la mejor desicion del dia mirar tu video para utilizar spring boot! estaba con muchas dudas de seguir utilizando este software pero ahora claramente me despejaste al 100% simplemente espectacular! hasta el proyecto de github dejaste... 10 de 10...
si estan leyendo esto y se quieren ir a mirar una peli o serie quedense aca que este video es mejor que breaking bad jajajaja, ademas que lo aprendido queda fuertemente arraigado.
Muchas gracias por tomarte el tiempo de comentar, me alegra mucho que mi vídeo haya hecho cambiar la perspectiva que tenías sobre Spring. Sigue así crack.
¡Saludos!
excelente info, podrias hacer una update de los cambios que hay en spring 3.2.3 porfa?
Vaya... qué excelentes cursos. La mejor explicación que he visto hasta el momento, es increible la manera que no hace sentir pesado un video de +2 horas, mientras que en otros canales con esa duración no llego ni a la mitad porque me pierdo y abruma la cantidad de cosas que hacen. Qué increíble canal!
Gracias por tomarte el tiempo de comentar, me alegra saber que el curso te gustó.
¡Saludos!
Eres un crack, hermano. Un abrazo
Hace nada conozco este canal y es una locura el curso de Spring Security, la mayoría así de explicativos y extensos, están en inglés. Una joya escondida total. ¿De casualidad implementarás con OAuth2?
Hola Emmanuel, muchas gracias por tu comentario. Claro que sí, tengo en mente subir un vídeo usando OAuth2 en algún momento.
¡Saludos!
@@unprogramadornace Hola, excelente curso. porfin descubri lo que tenia que hacer para mi e-commerce. Ya me estaba dando la cabeza contra la pared porque no sabia como empezar con este tema. seria bueno lo que comenta el amigo mas a arriba un video explicando como lo hariamos con OAuth2. Muchas gracias por tan excelente y muy bien explicado contenido.
EXCELENTEMENTE explicado y funciona a las mil maravillas muchísimas gracias por compartir
solo falto explicar como inhabilitar el token o que se anule digamos después de 30 minutos de inactividad por parte del usuario?? podridas hacer un tutorial de ese tema???? seria fantástico
Nuevamente MUCHISISMAS GRACIAS POR COMPARTIR TUS CONOCIMIENTOS
Hola, creo que estas juntando temas, cuando trabajamos con tokens no manejamos sesiones, el tiempo de acceso está marcado por el tiempo de vida del token mas no manejamos sesiones, cuando el filtro detecte que el token está vencido denegará el acceso.
¡Saludos!
Buenísimo, espero pronto poder apoyar económicamente contenido de tan buena calidad. De momento mi humilde like y suscribir. Gracias por el tutorial, estuvo algo extenso pero la diferencia con otros tutoriales radica en que cada segundo del video tiene un aporte, información o dato útil.
Muchas gracias, toda la explicación y el detalle con el que programas es excelente!!!
Hola , estoy muy agradecido por este video , y por todo el tiempo que has invertido eres nuestro gran Sensei, Gracias!!!!
Gracias por tu comentario.
¡Saludos!
Excelente video, en realidad muchas muchas gracias por compartir tu conocimiento. Dios te bendiga enormemente! Felicitaciones
Gracias por tus palabras.
¡Saludos!
Gran trabajo máster, este curso es una maravilla!
Quería destacar que buen contenido, lo claro que está explicado, sin distracciones y con detalles que no he visto en los cientos de tutoriales que vi sobre el tema. Apoyen el canal.
Muchas gracias por tu comentario.
¡Saludos!
Te conocí hace 2 semanas y me cambiaste la vida, mil gracias por tus explicaciones, no dejes de hacer videos !
Wow!! Muchas Gracias!! creo que es la mejor explicacion que he visto.
Por tu acento asumo que eres de Colombia, por el lado de las tierras paisas. Muchas gracias por tu contenido, y tomarte toooodo el tiempo para explicar cada detalle. Creo que no había visto tutoriales tan detallados y actualizados en español. Saludos desde Pereira
Hola, muchas gracias por tu comentario. Efectivamente soy Colombiano. Me alegra que el contenido haya sido de utilidad para ti.
¡Saludos!
Mas que bueno, BUENISIMO. Felicitaciones y muchas gracias
Es una locura este curso, es bastante mas complejo de lo que esperaba JWT, sin embargo me da la sensación que la configuración es compleja, y que hecha una vez y estar correctamente modularizada, es cuestión de copiar e insertar en los proyectos y posteriormente ir configurando algunos detalles de acuerdo a cada proyecto. Sin embargo es fundamental entender correctamente su funcionamiento y cada linea de código que uno inserta en su proyecto, si no al final no estas aprendiendo nada. Muchas gracias por aportar este contenido a la comunidad y espero que sigas publicando material !
Excelente explicacion!! super completa y entendible.
Fue más complejo que el anterior claramente, pero demasiadoooo educativo, me descargue el JWT Handbook para profundizar y entender mejor como firmar los tokens al momento de generarlos y verificar si son validos con nuestra propia firma, el viaje continuo, muchas gracias, sending rays of love from Florencia
Hola Emerson, muchas gracias por tu comentario. Es cierto, hay todo un mundo detrás de JWT, me parece excelente que hayas pensado en ir más allá de lo que enseño en el vídeo, felicitaciones.
¡Saludos!
Todo muy bien explicado. Tienes mi like.
El mejor video 5, estrellas, Por favor no dejes de subir este contenido
Acabo de terminar este curso, esta super bien explicado y detallado, gracias por esta aportación, espero y en algun momento puedas hacer un curso relacionado con microservicios, la verdad creo que estaría genial!. saludos.
Hola excelente video y explicación, podrías continuar con la serie, por ejemplo con las mejoras de no tener las claves definidas en la clase principal....
Hola, no entiendo a que te refieres con tener las claves en la clase principal. En El metodo main solo tenemos un codigo para insertar datos de prueba a la base de datos, pero son solo eso. Datos de prueba.
En una aplicacion real no debes poner eso.
¡Saludos!
@@unprogramadornace Disculpa me explique mal, en la marca de tiempo 1:33:56 indicas que seria mejor no colocar el password ahí ya que es información sensible, pero luego igual la colocas, para los que estamos comenzando recién nos deja una duda, tiene que ir ahí? o no?, cual es la mejor practica?.. de nuevo muchas gracias por la explicación, de todos los videos de este tema es uno de los mejores.
@@JuanPablo-he4cx Hola, en el minuto que señalas, es completamente necesario que capturemos la contraseña. Esto significa que la forma en que se explica en el video es la correcta de hacerlo.
¡Saludos!
muchas gracias por este curso, estoy aprendiendo montones! liked and subscribed!
Dios mio gracias por existir me he pasado toda una semana rompiéndome la cabeza implementando JWT y esto fue lo único que me ayudo
Excelente, me alegro que te haya servido el tutorial.
¡Saludos!
Una de las mejores explicaciones que he visto, o la mejor incluso. Muchas gracias. No dejes de hacer vídeos, por favor. De sugerencia a solicitar un proyecto con microservicios y relaciones many to many, one to many y/o one to one, estaría genial, pero aplicando microservicios y spring cloud si es posible. Muchas gracias nuevamente.
Hola Josue, muchas gracias por tu comentario, las relaciones de JPA suelen ser iguales cuando se trabaja con microservicios y monolitos, no cambian. De igual modo tengo en mente subir algún contenido de microservicios más adelante.
¡Saludos!
Excelente vídeo, me ha sido de gran ayuda, muy bien explicado, todo un crack mi hermano, demás felicitarlo por compartir su conocimiento a quienes estamos iniciando en este rama bonita del desarrollo de software con el lenguaje Java y Spring Boot
Hola, muchas gracias a ti por tomarte el tiempo de escribir tu comentario.
¡Saludos Crack!
@@unprogramadornace Para un EndPoint Update de un user, tiene depronto la continuidad de como quedaría, te agradecería muchísimo.
Una locura estos cursos, deberías implementar una comunidad en discord para que la gente pregunte acerca de cualquier inconveniente al momento de realizar los paso a paso
Hola Jose, muchas gracias por tu comentario. Poco a poco iré agregando nuevas cosas al canal, tu sugerencia es una gran idea. En algún momento podría hacerlo.
¡Saludos!
De verdad que la explicación que das es muy buena, gracias por compartir estos temas que son de importancia para los que estamos aprendiendo
Acabas de ganar un suscriptor, mil gracias por la explicación detallada!
Bienvenido a la comunidad.
¡Saludos!
El mejor video que encontrado de spring security gracias
Hola, soy de Costa Rica, qué buen video, me ayudó mucho a implementar Spring Security a mi api
Gracias nuevamente!!!! comenzando el segundo y me da gusto ver la calidad de curso. Eres una gran ayuda hermano, espero sigas creciendo y puedas seguir subiendo buen contenido.
Gracias por tomarte el tiempo de comentar. También es de gran ayuda para mí.
¡Saludos!
Me encanto como explicas todo, acabo de montar por primera vez JWT con Spring. He visto tu video y he entendido muchas cosas que había hecho sin saber muy bien por qué. Estaría muy bien que hicieras otro video extendiendolo con los refresh token. Muchas gracias por compartir tus conocimientos!!
Al fin termine de verlo y me parece más genial aún, ya que no había visto algo tan bien explicado además de tu experiencia en su implementación tan bien segmentada...ORO PURO... muchísimas gracias.
Gran Trabajo, gracias por este valiosisimo aporte
Muy buena clase! ganaste más un inscrito. Solo tengo una duda, "¿Debo usar jjwt-api o java-jwt? Aparentemente, java-jwt no tiene actualizaciones desde el 31 de marzo de 2023 y jjwt-api tuvo su última actualización el 21 de junio de 2024. No sé si java-jwt ha sido descontinuado y ahora jjwt-api lo reemplaza, o si no hay actualizaciones en java-jwt porque ya está estable, mientras que jjwt-api aún está inestable. Quiero ayuda para saber cuál elegir."
Excelente contenido, muchas gracias. Todo muy claro, definitivamente uno de los mejores videos que he visto. De verdad que mereces muchas más vistas y subscritores. Ojalá que sigas subiendo contenido.
¿Tendrá una tercera parte? Por ejemplo, autenticarse con google o con keycloack que suena mucho, saludos👍👍
Hola Rodrigo, muchas gracias por el apoyo.
Tengo en mente seguir ampliando la serie de Spring Security con nuevos temas. En algún momento vendrán nuevos videos.
¡Saludos!
Gracias hermano! Muy buena explicación 10/10 el curso°
Acabo de terminar el primer video, me parece increible, en la ultima version de Spring Security hay metodos deprecados que aqui no estaban. Bueno, es tan bueno el curso, que no importa, me has dado el conocimiento y las herramientas para resolver mis problemas en un momento.
Es cierto, hay algunos métodos que están deprecados, la razón es que en versiones posteriores se configura la seguridad usando expresiones lambda. Ese es el problema de trabajar siempre con lo más actualizado y es que muy frecuentemente van saliendo cosas nuevas.
¡Saludos!
Like y suscripto!!! Muy buen contenido, super explicado todo!
Pregunta, toda esta configuracion y creacion de clases, metodos, etc... está en la documentacion o tu lo sabes por tu experiencia y conocimiento general?
Gracias!
Hola, gracias por comentar y suscribirte. Te comento: Las implementaciones de las clases y la lógica la hice por experiencia, la documentación usualmente te da ejemplos básicos y ya eso lo adaptas a tus necesidades.
¡Saludos!
Excelente video. Excelente ayuda, gracias...
Gracias por el hacer éste video, es muy bueno y me ayudo mucho, muy agradecido colega
Muchas gracias por tu comentario.
¡Saludos!
Muy buen vídeo, muchas gracias por tu esfuerzo!
Muchas gracias a ti por comentar.
Saludos.
Excelente explicación, he buscado varios videos y creo que es la mejor en español sobre este tema. Seguí sacando videos que explicas con mucha claridad! Lo único que sí estaría bueno es que pongas la letra un poco mas grande (a los que tenemos monitor pequeño se nos complica ver XD).
Gracias por comentar, tendré en cuenta tu sugerencia.
¡Saludos!
Sos un crack ! el mejor explicado...sigue con mas contenido 👍
Muchas gracias por el curso
Muy bueno el video me encantaria verlo complementado con un front basico para entender todo el panorama completo!
Un curso espectacular y muy detallada la explicación. Vengo luchando con la seguridad desde que nació Struts (ya olvidado), la unica contra con el avance de estas tecnologías es lo tan rápido que se "deprecan" ciertas clases. Te hago una consulta, esta explicación es compatible aplicarla a una Api Gateway? Tengo una app con microsservicios ya funcionando (las bases de datos en Docker) y necesito agregarle seguridad, pero la duda es que el microservicio gateway tiene ciertas definiciones que no se como impactan con la seguridad. Muchas Gracias!! y Saludos!
Hola, si lo vas a usar como API gateway debes configurar algunas cosas adicionales pero en general la esencia sería la misma. Pero bueno, no es algo que una búsqueda en Google no pueda solucionar.
¡Saludos!
Un dolor de cabeza todo jajaja pero al final se pudo, muchas gracias 🙏, es increíble como en tan solo 2 meses varias cosas que se usan acá ya están deprecated pero investigando o probando cosas se soluciona.🤕
Hola, es cierto. Ese es el problema cuando se trabajan con tecnologías tan nuevas. Pero si se entienden los conceptos la sintaxis es lo de menos.
¡Saludos!
Como has solucionado el deprecated de .jwts setsubject deprecated? no consigo encontrar nada.
Exelente curso 😁, saludos.
buenisimo muy bien explicado
muy bien explicado. gracias mil
Amigo se me escapo otra pregunta veo que muchas personas en otros videos crean el UserDetails dentro la entidad que llaman por ejemplo usuario pero otros crean de la entidad y crean otra clase llamada UserDetails para implementar los metodos pero en tu caso sobreEscribres el UserDetails en tu clase UserDetailsService, mi pregunta cual seria la forma mas ideal de hacer esto ?
Genial. Ya tienes un nuevo suscriptor. Me sumo al resto de comentarios .
Gracias por tu comentario. Un saludo.
Bro..., podrías hacer un video de como enviar notificaciones por medio de WebSocket o algo parecido :(? Atte: Tu seguidor eterno ;,v
Wooow!! que genial explicas y te das el tiempo apropiado para ahondar en cada punto...
Siguiendo este hito, podrías dar un ejemplo de Oauth2 y/o un Authentication Server porfa?
Saludos y exito !
muchísimas gracias hermano, que calidad son tus videos tienes una facilidad para hacerte entender, me imagino que eres profesor xq explicas muy bien, de casualidad habrás explicado exceptions?
Hola, de hecho no soy profesor, soy estudiante universitario jeje!.
Aún no tengo un vídeo sobre excepciones. Lo tendré en cuenta.
¡Saludos!
Hace un año hice un bootcamp donde aprendi tambien algo de seguridad. En un solo año ha cambiado varias veces la forma de hacer la configuracion... cuando busco ayuda online encuentro turoriales que cuando aplico, ya me salen funciones deprecadas ... es muy cool todo pero, tras de que no es facil, estan deprecando todo cada rato uff
Es cierto, Spring boot va cambiando constantemente y más aún Spring boot 3 que está tan reciente.
¡Saludos!
Excelente video..me suscribo...gracias
Gracias a ti por el apoyo.
¡Saludos!
Crack💥💥💥💥💥
Master, excelente contenido. Tengo un par de dudas, que me gustaria entender.
1. Para actualizar esta implemetación, deberia revisar la documentación y actualizar las dependencias para no utilizar las clases deprecadas o recomiendas ver los ultimos videos que publicaste ?
2. En el caso de que no envien el token deberia crear de una vez una excepción donde retorne el 401 ? Donde se deberia hacer esta implementación ? Tienes algún ejemplo ?
Hola, con respecto a tus 2 inquietudes te comento lo siguiente:
1) Ya subí un vídeo con las actualizaciones correspondientes, puedes verlos en el canal.
2) Si no se envía ningún token entonces el filtro de validación de token va a falla y por defecto se enviará un 401, entonces no tienes que implementar ninguna excepción personalizada, podrías hacerlo, pero no es necesario.
¡Saludos!
Muy bueno todo, eres un crack! :D
Buen video, esperando mas partes para crear un proyecto completo, tal como me lo mencionabas en un comentario
Hola, excelente video.
Tengo una duda sobre como creas los controladores. No es una mala practica mapear y poner lógica dentro del controlador en lugar de mandar a traer al servicio para que se encargue de eso?
No se supone que los controladores solo reciben peticiones y envian respuestas?
Hola, todo depende. En este caso lo hice así para explicar el tema de seguridad, pero en una aplicación grande y escalar se podría poner la lógica en el Service.
¡Saludos!
Buen video, una duda y en el caso de que no quiera harcodear los roles en anotaciones ni en el filterChain, sino tomarlo desde la bd y asi poder crear tantos roles como desee que alternativa tomarias.
Mmmm! En ese caso estás poniendo las cosas muy difíciles, la configuración usualmente se maneja así. Tal vez la alternativa que tomaría sería obtener los roles de un archivo.properties y setearlos allí e implementar alguna manera de guardar los roles dentro de ese archivo .properties, no sé cómo lo haría pero intentaría eso.
¡Saludos!
Amigo genial tu video, estoy empezando con Spring Security y estos videos me vienen de 10, consullta en mi security tengo seteado que con /logout pueda desloquearme pero me arroja un error cuando hago clic en una etiqueta que contiene el enlace a href="/logout , pero si lo hago dentro de un form que envie el action="/logout/ a traves de un metodo POST funciona.
Hola, usar un no es la forma adecuada de hacer un logout porque eso hará una petición GET y GET no es una forma confiable de manejar seguridad. Siempre lo mejor es manejarlo con un formulario y hacer un POST.
Entonces en este caso mi recomendación es que lo manejes a través del form.
¡Saludos!
@@unprogramadornace genial gracias spor tu respuesta y quién nos da un curso pagado , no enseña deshabilitando el método csrf().disable() osea lo que tú explicas que no es aconsejable deshabilitar 🤦🏽♂️
@@unprogramadornaceclaro entiendo, por eso la persona de mi curso deshabilita esa seguridad que explicas que no debe ser deshabilitada a la hora de enviar un formulario. En fin agradezco muchísimo tu vídeo ojalá sigas subiendo amigo y gracias por compartir tus conocimientos, genio!
@@intercambioradial Esa propiedad es muy usada en Spring MVC ya que tu trabajas con formularios, en esos casos no es recomendable inhabilitar esa propiedad, pero si trabajar con servicios REST en donde conectar un FrontEnd con un Backend usualmente se inhabilita porque tu solo recibes peticiones que te envía el Front.
!Saludos!
@@unprogramadornace Gracias amigo por las sugerencias, abrazo buena jornada!
BUEN TUTORIAL DE JWT, AUNQUE CASI ME EXPLOTA LA CABEZA. JEJE.
Too good to be true.
Esperando el capítulo 3 bro😊
Buenas,
antes de nada, dar las gracias por tan extenso y avanzadas explicaciones, son increíbles. Obvio me han salido durante la formación más dudas, sobre todo con los builders, objetos mediante stream, Function de funciones lambda ... pero bueno, cada cosa a su debido tiempo.
A mi me surge una duda.
Cada vez que me sale un error (normalmente es con algún Bean), con el mensaje de error de spring, no suelo saber por dónde ubicarlo. En java, si da un error normalmente indica en que clase ocurre.
¿Hay alguna forma de realizar test o cómo acotar por dónde viene el error? Ojala pudieras hacer un vídeo sobre ello si es que tiene algún truco, porque como digo, a mi me cuesta una barbaridad a pesar que me indica el nombre de la inyección.
Hola, spring normalmente suele ser claro con los errores que muestra y da detalles, el tema es que es necesario conocer bien cómo funciona spring.
Mi consejo sería aprender muy bien como funciona spring por dentro, es decir el core. Si conoces el funcionamiento de spring entenderás mejor los errores que te muestra.
¡Saludos!
@@unprogramadornace Muchas gracias! justo ahora estoy intentando aplicar las directivas creadas en tu curso, jwtauthentication y authoirizacion a otro proyecto que estoy haciendo. Como era obvio, iban a salir problemas, así que me toca justo lo que dices, ir removiendo los interiores de spring para conocer de él.
muchas gracias por la respuesta :)
@@unprogramadornace Perdona que te moleste, hay formación oficial de spring? o no queda otra que ir picoteando la documentación, ver explicaciones como la tuya y probarlo todo?
excelente contenido!!!!!!! una pregunta como se configura para que los logs salgan de colores?
Viene por defecto en mi intellig IDEA.
¡Saludos!
😪😪 ,yo tengo todo en el mismo color, encontre una conf para setear en application.properties pero no hay caso,gracias por responder, y excelente contenido @@unprogramadornace
Buenas muy buen aporte muy bueno la verdad, aprendi muchisimo, una pregunta que tema utilizas en tu id ?
Hola, muchas gracias por tu comentario. Te comento, yo uso un theme llamado "Gradianto" y para los iconos uso "Atom material icons".
¡Saludos!
que buen video amigo felicidades por tu trabajo estare ansioso por mas videos tuyos, solo me quedo una duda quisiera hacer un backend similar a este y consumirlo desde flutter mi pregunta es como el usuario puede registrarse solo ? osea solo colocar el endpoint permitall? y cuando loguea ahi darle un token ? o estoy equivocado si puedes darme una luz quisiera hacer una aplicacion con flutter que el usuario pueda registrarse solo que ahi le mande un link de activacion a su email para que despues pueda loguear tranquilo saludos :3
Hola, no logro entender muy bien lo que quieres lograr, lo que comúnmente se usa es crear un formulario en el que se piden los datos del usuario para guardarlos en la tabla user, allí ya quedaría registrado, si deseas enviar un email de confirmación normalmente se envía un link y ese link debe apuntar a un endpoint en el backend en el cual se le daría el permiso de acceso a la aplicación aunque siempre toda lógica de autenticación y autorización depende de las necesidades de la aplicación y se puede implementar de diferentes maneras.
¡Saludos!
excelente video, like si escuchaste el avion pasando jaja
De verdad que tus videos me han ayudado a comprender Spring security, muchas gracias.
Tengo una pequeña pregunta, ahora mismo ya no está la versión 3.0.7, cual sería la ideal para trabajar en estos momentos?
Hola, el problema es que todo cambia muy rápido, yo diría que selecciones cualquier versión que siga 3.0, el tercer número no importa mucho porque son mejoras, si seleccionas 3.1 la sintaxis cambia un poco. Aunque si comprendes los conceptos de spring security la sintaxis es lo de menos.
¡Saludos!
@@unprogramadornace Ok, muchas gracias
¿Que versión de Spring Security se trabajó? En el método authenticationManager, obtengo un error de que "and()" esta deprecado y no puedo culminar el método
Hola, se trabajó con Spring boot 3.0, si estás usando Spring boot 3.1 te va a botar un error en el "and()" debido a que esa nueva versión de Spring Boot te obliga a configurar Spring Security con expresiones Lambda para que lo tengas en cuenta, es muy probable que tu error sea porque estás trabajando con Spring boot 3.1.
¡Saludos!
@@unprogramadornace Muchas gracias, tenías razón, con Spring boot 3.0 no tuve ningún problema
@@unprogramadornace Hola, en ese caso, en qué partes del código se agregaría las expresiones Lambda?
@@sebastiantoscano4203 Hola, todas las configuraciones se hacen con Lambdas, cada una de las opciones de configuración reciben Lambdas entonces es difícil decirte exactamente cuáles porque son demasiadas opciones.
@@unprogramadornace Ok, y tal vez sabe dónde puedo consultar documentación al respecto? He estado buscando pero no logro encontrar
Hola! Soy nuevo en Spring y estoy implementando lo que he aprendido en este tutorial a mi proyecto... pero tengo un problema, me consigo autenticar por medio de postman (por ejemplo), pasando las credenciales en Json en el body de la request. Pero cuando intento hacer login por medio de interfaz normal de usuario (formulario html para login), me da error la linea: userEntity = new ObjectMapper().readValue(request.getInputStream... (debido a que espera un json y no un formulario URL-encoded. Cómo puedo soluciona esto?
Gracias por tus tutoriales!
Saludos
Hola, allí habría que cambiar un poco la lógica, sin embargo este video usa una versión de spring security desactualizada, ya está disponible la actualización del curso en el canal. La encuentras en el siguiente enlace:
th-cam.com/video/wzGCBZCknUs/w-d-xo.html
¡Saludos!
Muchas gracias amigo
Hola, Spring Boot 3 y Spring security 6 salieron hace muy poco tiempo, cuando son tecnologías tan recientes normalmente se van haciendo mejoras continuamente, eso quiere decir que van a hacer cambios constantemente y por eso te aparecen deprecated algunas cosas. Ese es el precio a pagar por siempre usar lo último.
¡Saludos!
😅😅@@unprogramadornace
Bro, yo me acostumbre a tu vídeo de las api, y veo que aquí usas models y no entities. Hay alguna razón para eso ? O cual debo usar de ahora en adelante , son cosas que no me dejan dormir 😬
Hola, bajo este contexto puedes usar entities o models, ambas hacen referencia a lo mismo. Ahora, duerme tranquilo.
¡Saludos!
Muy buen curso!! , solo quisiera el curso actualizado ya que en muchas partes sale que el codigo ya esta en desuso:C
Muchas gracias por comentar.
Tendré en cuenta tu sugerencia.
¡Saludos!
Buen dia amigo, de antemano muchas gracias por todos esos videos donde enseña de manera clara, estoy siguiendo este tutorial hace tiempo, solo que e tenido problemas y no me genera el token, he hecho varias cosas intentado soluconar pero no he podido, primero salia algo relacionado que la clave secreta era muy corta, la cambie y ahora me sale un error que dice textualmente "Illegal base4url charactter: '$'. le gradezco si me puede colabroar. no se que mas intetar
Hola, puedes pasar por muchas causas diferentes y es difícil darte una respuesta sin ver el código que estas escribiendo. En la descripción de este video se encuentra un enlace al curso actualizado a 2024 por si lo quieres ver.
¡Saludos!
@@unprogramadornace parcero precisamente estoy en ese vídeo y en el anterior a ese (el que recomiendas ver primero) y hasta ahora todo ha salido bien, vamos a ver cómo me termina de ir, la buena 👏🙏
Lo primero de todo que darte las gracias por este fantástico video, es una auténtica maravilla cómo explicas todo con tanto detalle.
También quería hacerte una pregunta. Cuando hago el login para que me devuelva el token en Postman, me obliga a que la petición que le haga sea de tipo GET en vez de POST, y esto me causa bastantes problemas para el front, ya que no puedo enviar body en una petición de tipo GET. ¿Alguna idea de a que se debe?
Saludos y gracias por este contenido
Hola, en la clase que usamos en el vídeo solamente trabajamos con POST debido a que un login con GET es una vulnerabilidad debido a que GET te muestra los valores que envías dentro de la URL. Ahora imagínate mostrar el usuario y la contraseña de tu cliente en la URL, completamente inseguro. La verdad no sé muy bien que se haría allí debido a que siempre los login se manejan con post, creo que deberías buscar alguna implementación de un filtro que por defecto no use post.
¡Saludos!
@@unprogramadornace Gracias por la respuesta. El problema que tengo es que quiero usar POST, pero cuando lo uso me dice que no está permitido, y solo puedo acceder usando el login. Lo que quiero solucionar es que no me deje usar el GET y poder usar el POST
@@angelj.2835 Trata de autorizar la URL desde la configuración de Spring Security aunque insisto que usar GET en un login es un problema de seguridad, yo diría que trates de solucionar el problema pero usando POST ya que GET no se usa para login. Aunque si estás usando la clase que usamos en el vídeo no deberías tener problema.
¡Saludos!
@@unprogramadornace Gracias, voy a intentarlo, aunque he seguido la clase tal cual, probaré de nuevo.
También quiero solucionarlo por lo del problema de seguridad.
Muchas gracias de nuevo 😊
@@unprogramadornace acabo de solucionar el problema. Se me olvidó poner .csrf(config -> config.disable()). De nuevo, gracias por el video.
P.D.: Me voy a mirar el nuevo que has subido que tiene muy buena pinta :)
pofe una pregunta. Se puede hacer lo mismo que hace Lombok pero usando records en lugar de clases con anotaciones de lombok?
Hola. De poder hacerse si se puede, pero debes tener mucho cuidado porque los récords se usan SOLO para crear clases INMUTABLES, solo por eso hay que tener mucho cuidado. No es buena práctica usar clases inmutables para crear Entidades, mi consejo, es que debes dominar la inmutabilidad de clases para saber en qué situaciones conviene usar records.
¡Saludos!
🙏
a la api que hicimos en el cap anterior con buenas practicas, le puedo añadir seguridad ?
es decir, a la anterior para practicar con aquella debo crear una clase nueva para roles o se hace de otro modo
En el capítulo anterior también trabajamos con Spring security.
No entiendo a qué te refieres con "le puedo agregar seguridad". Justamente eso fue lo que hicimos. No sé si te estás confundiendo con algún otro video.
¡Saludos!
si trate de decir el video de "Domina las api rest"@@unprogramadornace
@@Shinigami4rt Ese proyecto es basico, pero tiene buenas practicas. Se le pueden agregar muchas cosas mas, como por ejemplo la seguridad.
¡Saludos!
@@unprogramadornace yo a ese proyecto , siguiendo las bases de tus vídeos lo cambie a una api crypto y agregue las validaciones. Lo que quiero es que me sirva para el portafolio, por eso pregunto. Así faltaría nomas la seguridad
@@Shinigami4rt se pueden agregar muchas cosas más, pero para portafolio estaría bien, incluso sin seguridad. Pero está más que así como lo tienes pensado. Lo más importante es que sepas lo que haces y sepas que es lo que hace cada parte de tu código porque te lo van a preguntar en la entrevista.
¡Saludos!
Sobre la configuración de los cors para el login de spring security?
Hola, los cors es un tema que abordaremos más adelante.
¡Saludos!
Hola, primero que todo buen video, he pasado horas y hasta días aprendiendo y repasando lo que dices. Solo tengo un problema casi al final del video y es que se me queda en error 401, ¿Alguna solución de por donde empezar? No hay excepciones ni mensajes de error... No sé que pueda ser
Hola, el error http 401 siempre es por falta de autorización, eso quiere decir que no estás proporcionando los permisos necesarios para acceder a dicho recurso. Te recomiendo mirar bien los roles y la configuración de acceso a los endpoint, verifica muy bien los permisos que estás otorgando, allí debe estar el error.
¡Saludos!