🛡️🔒 SPRING SECURITY [EXPLICACIÓN + PROYECTO COMPLETO] 💻🔥 | DE 0 A SUPER SAIYAN LEGENDARIO

Поделиться
HTML-код
  • Опубликовано: 16 ноя 2024

Комментарии • 163

  • @danielespanadero
    @danielespanadero  9 месяцев назад +13

    Hay un pequeño error en el bucle for de. 1:43:15. Me equivoqué en el condicional. En este caso, si getAllUsers no está vacío, simplemente devolverá "User already exists!" sin verificar si alguno de los usuarios existentes tiene los mismos datos que el usuario que se está intentando registrar.
    Este sería el código corregido para validar que no se repite el email, puedes añadir otros campos:
    for (UserEntity existingUser : getAllUsers) {
    if (existingUser.getEmail().equals(user.getEmail())) {
    response.setMessage("Email already exists!");
    return response;
    }
    // Agrega más comparaciones de campos relevantes según sea necesario.
    }
    Mi recomendación en que en vez de en el servicio, esto vaya dentro de la carpeta de UserValidations.
    Mil disculpas por el error. Un saludo.

    • @psybrainy
      @psybrainy 8 месяцев назад

      Hola! Dónde puedo descargar la documentación que mensionas?

    • @andresmorenopedraza1088
      @andresmorenopedraza1088 2 месяца назад

      si tuve ese error pero lo solucione, gracias Crack llevaba 15 días tratando de implementar la seguridad a mi api y no habi podido y gracias a ese maravilloso tutorial lo logré hacer en 4 horas, ahora lo puedo implementar a mi api, por mas Developers así en el mundo

  • @rodrigogonzalezperez6333
    @rodrigogonzalezperez6333 8 месяцев назад +1

    mano, de lejos el mejor video que haya visto, me ha ayudado muchisimo, gracias de verdad

    • @danielespanadero
      @danielespanadero  6 месяцев назад

      Muchas gracias por tu aporte, me alegro de que te haya servido. Un abrazo! 😁🤘🏻

  • @eddyroberterazozamudio5282
    @eddyroberterazozamudio5282 11 месяцев назад +2

    Excelente video muy buena la implementación del jwt con las llaves publica y privada.

    • @danielespanadero
      @danielespanadero  11 месяцев назад

      Muchas gracias, Eddy. Un fuerte abrazo desde Barcelona, España.

  • @geovannymesa2015
    @geovannymesa2015 11 месяцев назад +5

    Excelentísimo aporte de verdad, muchas gracias, sería muy bueno una serie de microservicios con jwt, roles, logout y conexión a diferentes bases de datos
    éxitos y bendiciones, saludos desde Bogotá Colombia

    • @danielespanadero
      @danielespanadero  11 месяцев назад +5

      Lo tengo pendiente. En cuanto pueda me pongo a ello. Un abrazo!

    • @andresariascapurro
      @andresariascapurro 8 месяцев назад

      Una joyita de clase que nos brindaste. Muchas gracias por compartir tus conocimientos. Abrazo

  • @kevinam3692
    @kevinam3692 6 месяцев назад +2

    Muchas gracias, es el unico video que me a servido y puedo decir que puedo hacer jwt al fin

    • @danielespanadero
      @danielespanadero  6 месяцев назад

      Muchas gracias por tus palabras, me alegro de que te haya servido. Un abrazo! 🥳🙌🏻

  • @sebastianvergara6679
    @sebastianvergara6679 5 месяцев назад +1

    Muchas gracias por el contenido de este video, después de varios intentos me funcionó para así perfeccionar en temas de seguridad, que sigas haciendo videos de programación para seguir aprendiendo.

    • @danielespanadero
      @danielespanadero  5 месяцев назад +1

      Muchas gracias por tus palabras, Sebastian. Mi idea es seguir compartiendo este tipo de conceptos a medida que voy avanzando en materia. Un abrazo!

  • @juansimonzubigaray4942
    @juansimonzubigaray4942 9 месяцев назад +1

    Buenísimo Dani, termino el que estoy viendo y sin duda caigo acá de vuelta! Éxitos!

    • @danielespanadero
      @danielespanadero  9 месяцев назад

      Muchas gracias por tu comentario. Espero que el vídeo sea de tu agrado y, como siempre, si te surge cualquier duda, no tengas reparo en preguntar. Un abrazo. 🙂🙌🏻

  • @juanfelipecanocorrea8520
    @juanfelipecanocorrea8520 4 месяца назад +1

    La verdad me gustó mucho, hice todo el tutorial, laverdad siento que me sirvió como laboratorio puesto que nunca habia echo esto y no tenia ni idea de como funcionaba, muchas gracais

    • @danielespanadero
      @danielespanadero  4 месяца назад

      Muchas gracias por tu testimonio. Será de gran ayuda para todas aquellas personas que vengan aquí buscando aprender sobre Spring Security. Me alegro de que te haya sido de utilidad. Un fuerte abrazo 🫡

  • @thelinkdero
    @thelinkdero Месяц назад +1

    Me metí al video porque me dio risa él tema de 0 a ssj legendario jajaja tengo un login por medio de cookies, pero cuando lo hice no tomé en cuenta que mis aplicaciones móviles se tenían que conectar, se ve que eres un profesional en el área, mi conclusión cuando terminé el tutorial

    • @danielespanadero
      @danielespanadero  Месяц назад

      Muchas gracias por tus palabras. Me alegro de que te haya sido de utilidad. Un fuerte abrazo!

  • @ChristianDev93
    @ChristianDev93 11 месяцев назад +1

    Muy bien, Dani.
    Sigue así, haciendo lo que más te gusta.
    Saludos y éxitos.

    • @danielespanadero
      @danielespanadero  10 месяцев назад

      Muchas gracias por tu comentario, Christian. Da gusto leer comentarios así, es lo más gratificante cuando creas este tipo de contenido. Un fuerte abrazo!

  • @poolcitopoolcito9394
    @poolcitopoolcito9394 Месяц назад

    ESPECTACULAR !!!!!

    • @danielespanadero
      @danielespanadero  Месяц назад

      Muchas gracias, me alegro de que te haya sido de utilidad. 🫡

  • @WiriDeveloper
    @WiriDeveloper 5 месяцев назад +2

    viejo, estoy en la uni haciendo estadias, y estoy desarrollando una aplicación para una escuela, ahora ya llevo una semana tratando de implementar el token a mi api y segui con el desarrollo de la app movil pero solo no puedo jajaja, ahora voy a ver todo tu video y voy a tratar de implementarla, es el video mas actualizado que he encontrado en español, ya que la mayoría son muy viejos, o no explican el porque, o he visto en mayoría de comentarios hablando sobre malas practicas, y estan deprecated, ya eh visto tu video a la mitad y se ve bueno o por lo menos que si vas explicando bien deséame suerte y espero si poder hacerlo bien muchas gracias por la preparación que le das a los videos y porque no lo dejas a la ahí se va, si explicas bien, gracias

    • @WiriDeveloper
      @WiriDeveloper 5 месяцев назад +1

      si funcionaaaaaaaa graciaaaas... ahora tengo que implementar mis tablas sobre esta api, por cierto no sabia que habia que instalar ssl primero en el pc, ssh, etc. igual muchas gracias, me ayudas muchisimo, ahora tengo que colocar mis clases que tenia ya en mi otra api, que es una basico, la seccione por tres paquetes: controller donde colocaba las urls con los metodos, model, donde colocaba la estructura @Id y asi, y el ultimo paquete view, donde colocaba las interfaces y le daba extends a JpaRepository. ahora supongo que los archivos de controller lo metere en controllers, model los colocare dentro de persistence/entities/ y view los metere dentro de persistence/repositories pero la verdad nunca habia trabajado asi y se ve mejor tiene mejor estructura, seguire

    • @danielespanadero
      @danielespanadero  5 месяцев назад +1

      Muchas gracias por tus palabras, me alegro de que te haya funcionado. La instacación de ssh es solo en windows, el resto de sistemas operativos lo tienen por defecto. En cuanto saque un rato haré una segunda parte para implementar roles.
      Un abrazo y mil gracias de nuevo por tus palabras. 🫡🙌🏻

    • @WiriDeveloper
      @WiriDeveloper 5 месяцев назад +1

      @@danielespanadero muchas gracias, vi tus repositorios, unos de stackover y el chat gpt y ya mas que implementarlos, ya entendi el porque y me fui mas a saber el tipo de anotaciones y el proceso, neta muchas gracias, ahora ya avanzare al desarrollo de la app en ionic, vato aunque no lo creas ayudas mas que profes en la uni, muchas gracias en serio un abrazo fuerte y ojala ser como tu en programacion

    • @danielespanadero
      @danielespanadero  5 месяцев назад +1

      @@WiriDeveloper la clave es esa, ayudarnos entre nosotros. Leer tus palabras me motiva a seguir adelante, un abrazo! 🙌🏻

  • @latrompetasinnombre8794
    @latrompetasinnombre8794 11 месяцев назад +1

    Muchas gracias!! Muy útil este y otros videos.

    • @danielespanadero
      @danielespanadero  11 месяцев назад +1

      Muchas gracias por tu comentario, es la gasolina que me motiva a segur dandolo todo en esta plataforma. Un fuerte abrazo!

  • @santiagoserpa55
    @santiagoserpa55 10 месяцев назад +1

    Excelente explicación Bro. Ya lo has dicho no hay mucho contenido de este tipo, Gracias. y como dicen ustedes Joder Tio!
    Saludos desde Colombia.

    • @danielespanadero
      @danielespanadero  10 месяцев назад

      Muchas gracias por el comentario, Santiago. La verdad es que es dificil ver contenido que explique Spring Security paso a paso y por eso decidí crearlo. Me alegro mucho de que te guste. Saludos desde España.

  • @yonaalbino
    @yonaalbino 8 месяцев назад +2

    Este video me viene perfecto, es justo lo que estaba necesitando
    Muchas gracias por tu trabajo!
    Lo unico a mejorar seria explicar mas en detalle que hace cada metodo y clase para enteder los conceptos y no copiar por copiar
    Saludos

    • @danielespanadero
      @danielespanadero  8 месяцев назад +1

      Muchas gracias por tu comentario y por la crítica constructiva. Intentaré hacer otro vídeo en el futuro explicando cada método. Tambien tengo pendiente explicar como añadir roles partiendo de lo explicado en este mismo vídeo. Un abrazo! 🙂🙌🏻

  • @alejobeliz2
    @alejobeliz2 24 дня назад +1

    Hola ! Estoy viendo tu video en este momento. Puse pausa para preguntarte si no podes subir esos apuntes teoricos. Me gusta aprender bases teoricas, me ayuda mucho a entender el codigo luego. Si mas adelante en el video decis que esos apuntes estan subidos en algun lado lo veo en un rato jaja

    • @danielespanadero
      @danielespanadero  24 дня назад

      @@alejobeliz2 buenas. En principio, para realizar este tipo de vídeos suelo nutrirme de la documentación oficial de la tecnología en cuestión, al ser tan densa, la sintetizo y la reduzco a la parte que me interesa de cara a la realización del vídeo. Aquí te adjunto la documentación oficial de Spring Security:
      spring.io/projects/spring-security#overview
      Aun así, te recomiendo aprender una buena base de Spring Boot y Java antes de adentrarte en el mundo de Spring Security. Se te puede complicar mucho si no tienes esa base previa. Un saludo y mucho ánimo! 🙂

  • @rpantax8183
    @rpantax8183 10 месяцев назад +2

    Muchas gracias por el video crack!

    • @danielespanadero
      @danielespanadero  10 месяцев назад

      Muchas gracias a tí por comentar, no olvides suscribirte para estar al tanto de todo el contenido que voy subiendo al canal. Un abrazo!

  • @carlosmollapaza9267
    @carlosmollapaza9267 10 месяцев назад +1

    Muy bien, este es el inicio, ahora te reto hacer lo siguiente porque yo no lo he logrado aun. Spring Security 6 Oatuh2 Authorization code con multi tenant.

    • @danielespanadero
      @danielespanadero  10 месяцев назад

      Pues no lo conozco, me pondré a leer sobre el tema y en cuanto pueda subo vídeo al respecto.

  • @dafex1569
    @dafex1569 6 месяцев назад +1

    Gracias por estos videos ❤❤
    Podrías hacer uno de registro con activación/verificación de cuenta por correo en un api? (MVC, super sencillo de hacerlo, pero en el contexto de backend separado es otra cosa)
    Es una capa de seguridad que veo necesaria pero no se implementarla de manera correcta, creo que a mas de uno le sería útil un tutorial.

    • @danielespanadero
      @danielespanadero  6 месяцев назад +1

      Muy buenas, pues justo tengo un vídeo de cómo enviar correos electrónicos:
      ruclips.net/video/3GqjpcxQnUI/видео.html
      Para hacer lo que dices simplemente es añadir un campo al usuario para comprobar si está activo que inicialice en false. Al correo envías una url dinámica con el token y en el momento que esa url envíe una petición al back, cambias el valor de false a true.
      Me parece un buen vídeo para hacer. Me lo apunto para hacerlo cuando saque un rato. Un abrazo! 🫡🤘🏻

  • @superdiego2357
    @superdiego2357 3 месяца назад +1

    Gran video. una pregunta, esta forma de validar es recomendable? es que me ha parecido muy fácil de entender y en otros sitios había visto que hacen la validación de otras formas mas tediosas. Y luego, la clase validationsConfig cual es su uso porque luego inyectamos directamente el validuser en el servicio, no veo su uso. Un saludo y gracias

    • @danielespanadero
      @danielespanadero  3 месяца назад

      Muchas gracias por tu comentario, Diego. Pues la verdad es que es una forma muy utilizada hoy en día y bastante segura, ya que Spring Security tiene a mucha gente detrás trabajando en mejorar la librería día tras día. Aunque también tienes herramientas externas cómo captchas, que te ayudarán a evitar problemas de seguridad. En mi caso no soy muy partidario de utilizar algo que sea difícil de entender, ya que ahí sí que puedes llegar a tener problemas por un posible error humano. En cuanto a los archivos de configuración, es algo que Spring ya utiliza automáticamente en el proyecto, no hace falta indexarlo en ningún sítio.
      Un abrazo!

    • @superdiego2357
      @superdiego2357 3 месяца назад

      @@danielespanadero me refería a validar campos como que el nombre no sea nulo o cuando realizas una búsqueda en base de datos y ese usuario no existe, tu lo hiciste con la clase uservalidation sin usar excepciones. Pero he visto que se suele usar mucho el exceptionhandler. Cual recomiendas mas ?. Muchas gracias un saludo.

  • @danielreyesepitacio8406
    @danielreyesepitacio8406 8 месяцев назад +2

    Tienes mucha razon en que las empresas no le dan importancia a la seguridad. En la universidad reporte vulnerabilidades del sistema y no le tomaron importancia, y en la empresa tambien reporto problemas de seguridad en los proyectos y no hacen nada jajaja

    • @danielespanadero
      @danielespanadero  8 месяцев назад

      Suele pasar, lo importante es que en tus aplicaciones intentes hacerlo de la mejor manera posible. Y para el resto, está bien proponer, pero si ves que no hay iniciativa de solucionarlo, es mejor no insistir. 😅

    • @gabyyhshss
      @gabyyhshss 7 месяцев назад

      Una pregunta mi estimado, una vez hecho esto como podemos hacer para que solo el logueado pueda acceder a ciertos endpoints?

    •  3 месяца назад

      ​@@danielespanadero si insisten te pueden hechar por intensivoro

    •  3 месяца назад

      Tal cual gran perro, cuando pasp el Log4Shell si lo reporte y me hicieron caso, pero luego otros dándose el credito jijijij

  • @JuanEstebanCamachoBarrera
    @JuanEstebanCamachoBarrera 10 месяцев назад +1

    Muchas gracias por el contenido de valor🤓

    • @danielespanadero
      @danielespanadero  10 месяцев назад

      Gracias a tí por comentar, un fuerte abrazo.

  • @zzz.12M
    @zzz.12M 2 месяца назад +1

    Este video me va a re servir

    • @danielespanadero
      @danielespanadero  2 месяца назад

      Me alegro de que te sea de utilidad. Cualquier duda que te surja, no tengas reparo en preguntar. Un abrazo!

  • @elimarchanparra8161
    @elimarchanparra8161 8 месяцев назад +1

    Con razón los programadores no se adentran en la seguridad si es en tema muy tedioso, tendré que procesar varias partes que no entendí bien porque no conozco el funcionamiento de algunas clases y sus métodos pero la idea general si la capte bien.
    Buen video Bro!!

    • @danielespanadero
      @danielespanadero  8 месяцев назад +1

      Muchas gracias por tu comentario, lo bueno de esto es que al principio se te hsce un mundo, pero poco a poco lo vas viendo cada vez más claro y, en general en la mayoría de proyectos vas a utilizar configuraciones similares.

    • @elimarchanparra8161
      @elimarchanparra8161 8 месяцев назад +1

      @@danielespanadero Gracias por el aporte, en estos momentos tengo dolores de cabeza con la implementación de la seguridad ya de la forma que aprendí ya esta deprecada y tu video me vino del cielo.

    • @hector7029
      @hector7029 7 месяцев назад +1

      @@elimarchanparra8161 tranquii, yo creo que casi todos quedamos igual cone se dolor de cabeza xD pero es como todo, practica y practica

  • @andevank
    @andevank Месяц назад

    Excelente, una consulta como haces la integracion del las llaves en el frontend. Muchas gracias de antemano

    • @danielespanadero
      @danielespanadero  Месяц назад

      Gracias por tu comentario, Andrés. La integración de llaves en el frontend depende del tipo de autenticación que uses. Lo normal es trabajar con JWT. El backend genera un token tras el login, que el frontend guarda (en localStorage, sessionStorage o en memoria). Luego, el token se envía en el encabezado Authorization en cada petición. Un saludo!

  • @axelhernandez1903
    @axelhernandez1903 9 месяцев назад +1

    Excelente video. tienes alguno otro explicando como crear relaciones entre entidades?

    • @danielespanadero
      @danielespanadero  9 месяцев назад

      Muchas gracias por tu comentario, me lo apunto para hacerlo. Suscríbete al canal para estar al tanto. Un fuerte abrazo!

  • @trashplayz3004
    @trashplayz3004 4 месяца назад +1

    Buen video, puede que le de una oportunidad de nuevo a spring security. En un proyecto personal que estoy haciendo por miedo a malas configuraciones termine usando keycloak, con 1gb aprox de ram que consume jajaja solo para autenticar a unos pocos users. Saludos!

    • @danielespanadero
      @danielespanadero  4 месяца назад

      Me alegro mucho de haberte motivado a darle una oportunidad a Spring Security. Tengo curiosidad por ver que tal te va. Un fuerte abrazo! 🙂🙌🏻

  • @thelinkdero
    @thelinkdero Месяц назад +1

    Hasta ahora logre ver el video completo y me funciono de maravilla, muchas gracias por todo :D
    Pd: ¿Qué libros de Springboot seugieres?

    • @danielespanadero
      @danielespanadero  26 дней назад

      Muchas gracias por el apoyo, me alegro de que te haya servido. Pues no he leído ningún libro sobre Spring Boot, no te puedo recomendar ninguno. Un saludo!

  • @ruthlimachi825
    @ruthlimachi825 9 месяцев назад +1

    Gracias, excelente !!!

    • @danielespanadero
      @danielespanadero  9 месяцев назад

      Gracias a tí por comentar. Un fuerte abrazo! 🙂🙌🏻

  • @rogertello2947
    @rogertello2947 9 месяцев назад +1

    Es muy importante el tema de seguridad, peor el dia de hoy.
    Se agradece mucho el esfuerzo por hacer estos videos.
    una duda fuera de borda, con que programa grabas tus videos?
    Saludos

    • @danielespanadero
      @danielespanadero  9 месяцев назад

      Muy buenas Roger, muchas gracias por tu comentario. Pues utilizo OBS Studio para grabar los vídeos. Es un programa bastante completo. Un fuerte abrazo.

  • @cannedcliche542
    @cannedcliche542 9 месяцев назад +1

    Entre por el Broly fase 3, me quede por la explicacion tan completa.

    • @danielespanadero
      @danielespanadero  8 месяцев назад

      Muchas gracias por tu comentario. Me alegro mucho de que te haya aportado. Un abrazo! 😇

  • @aalvaropc
    @aalvaropc 2 месяца назад +1

    🙌

  • @josevictorhipolitojarabarr36
    @josevictorhipolitojarabarr36 11 месяцев назад +1

    se agradece

    • @danielespanadero
      @danielespanadero  11 месяцев назад

      Gracias a tí por comentar. Un fuerte abrazo!

  • @jonhrodriguez6568
    @jonhrodriguez6568 9 месяцев назад +1

    Interesante 😊

    • @danielespanadero
      @danielespanadero  9 месяцев назад

      ¡Muchas gracias! Espero que te haya servido. Un abrazo.

  • @andreszapataruiz6255
    @andreszapataruiz6255 6 месяцев назад +1

    Graciaaas

    • @danielespanadero
      @danielespanadero  6 месяцев назад

      Gracias a tí por comentar Andrés. 😁🤘🏻

  • @deyvids-dev
    @deyvids-dev 7 месяцев назад +1

    Si uso maven que tendría que agregar?

    • @gabyyhshss
      @gabyyhshss 7 месяцев назад

      en tu pom.xml

    • @danielespanadero
      @danielespanadero  6 месяцев назад

      Son exáctamente las mismas librerías. Un fuerte abrazo! 🙂🤘🏻

  • @carlosjesusbarreraaleman-sl2xd
    @carlosjesusbarreraaleman-sl2xd 8 месяцев назад +1

    Hay alguna diferencia en el codigo entre Gradle y maven para usar spring security ?

  • @hector7029
    @hector7029 7 месяцев назад +1

    Muchas gracias tio :)

  • @witcode7752
    @witcode7752 11 месяцев назад +1

    Excelente video

  • @CeratiGilmour
    @CeratiGilmour 11 месяцев назад +1

    que tema estas usando en tu intellij?

    • @danielespanadero
      @danielespanadero  11 месяцев назад

      Muy buenas, estoy utilizando Dark, para que las carpetas se vean así, estoy utilizando Atom Material Icons.

  • @Manuel-ug5fg
    @Manuel-ug5fg 8 месяцев назад +1

    Hola Daniel, yo estoy haciendo una capacitación en una empresa, sobre Spring Seccurity, y lo que nos hizo hacer el profesor, es crear las claves desde el cmd con el mismo comando que tú, pero sin darle formato al archivo y sin especificar la ruta de guardado. ¿Puedo copiar la misma clave y el mismo certificado, y pegarlos en los archivos del proyecto que quiero crear, o no funcionarían allí?
    Eso es lo que no tengo claro
    Saludos

    • @danielespanadero
      @danielespanadero  8 месяцев назад +1

      Muy buenas Manuel. En principio, siempre y cuando el archivo donde lo pegas tiene la extensión correcta, no debería de darte ningún problema copiar y pegar. Un saludo. 🙂

    • @Manuel-ug5fg
      @Manuel-ug5fg 8 месяцев назад

      Entonces, entiendo que es la misma clave siempre para todos los proyectos que creemos con seguridad? porque tú creas la clave directamente en el proyecto, y yo la he creado desde el CMD, sin asignarla a ningún proyecto, eso es lo que me confunde.@@danielespanadero

  • @miusicpro-musicaparacreado9513
    @miusicpro-musicaparacreado9513 8 месяцев назад +1

    necsito tener instalado Gradle para usar en Java ?

    • @danielespanadero
      @danielespanadero  8 месяцев назад

      Como empaquetador de librerías tienes tanto Gradle como Maven. En muchas ocasiones la instalación la puedes hacer desde el propio IDE.

  • @Alex-eq1cs
    @Alex-eq1cs 11 месяцев назад +1

    Ahora que estoy estudiando, ya me han inculcado el declarar constantes. Ese número de intentos, quizá sería mejor que fuera final y en mayúsculas 😅😂

    • @danielespanadero
      @danielespanadero  11 месяцев назад

      Muy buenas Alex. Es un placer ver que cada vez hay más gente nueva que se adentra en el maravilloso mundo de la programación. Mi consejo es que intentes ir poco a poco y con pies de plomo, ahora estás con las constantes, pero pronto vendrán los bucles, los arrays, concurrencia... Y se puede hacer un poco abrumador. Si le pones pasión y ganas, llegarás lejos. Ánimo.
      ¿A que parte del vídeo te refieres que usarías constantes? No se si te lo ha dicho el profe, pero en general, en la mayoríia de proyectos todos los strings están declarados en un archivo de constantes dentro de una ruta utils y se van llamando desde ahí. Verás que poco a poco lo irás dominando.
      Disfruta mucho de la etapa del cole, es la mejor. 🙂

  • @sebastiansilvavidal452
    @sebastiansilvavidal452 8 месяцев назад +1

    Hola. Esta implementación tiene verificación de correo electrónico? Olvidé contraseña? Cambiar contraseña?
    Muchas gracias.

    • @danielespanadero
      @danielespanadero  8 месяцев назад

      Muy buenas, no. Aquí enseño Spring Security. Tengo otro vídeo sobre Java Mail que en combinación con este podrías hacer todas estas cosas sin problema.

  • @leonardomorganti654
    @leonardomorganti654 3 месяца назад +1

    De dónde puedo acceder a la guía escrita ? Muchas gracias buen video. Saludos desde argentina campeones del mundo 😊

    • @danielespanadero
      @danielespanadero  3 месяца назад +1

      Muchas gracias por tus palabras, aquí te comparto la documentación oficial de Spring Security:
      spring.io/projects/spring-security
      Un saludo desde Barcelona, España. 🇪🇸

    • @leonardomorganti654
      @leonardomorganti654 3 месяца назад

      @@danielespanadero gracias pero la ofical la conocia, yo me refiero a la que haces referencia en el minuto 07:18

  • @Deus-lo-Vuilt
    @Deus-lo-Vuilt 10 месяцев назад +1

    Que buena portada !

  • @carolinamoncada3129
    @carolinamoncada3129 7 месяцев назад +1

    bro youso eclipse y maven y en properties no me deja agregar jwtkeys, podrias pasarme el codigo pa copiarlo?

    • @danielespanadero
      @danielespanadero  6 месяцев назад

      Por supuesto, aqui tienes:
      github.com/DanielEspanadero/spring-security
      Un saludo! 🙂🤘🏻

  • @santiagoforonda3986
    @santiagoforonda3986 3 месяца назад +1

    Tengo un problema con el import del archivo java.nio.file.Files, no me reconoce ese import pero java.nio.file.Paths y java.nio.file.* si me los reconoce, estoy usando Java y visual studio code

    • @danielespanadero
      @danielespanadero  2 месяца назад

      Muy buenas Santiago. En teoría no utilizo Java nio, esa es una librería de gestión de archivos. Ahí es donde está el problema, espero que puedas solucionarlo. Un abrazo! 🙂

  • @sanchez-emir
    @sanchez-emir 11 месяцев назад +1

    harás video de mapstruct?

    • @danielespanadero
      @danielespanadero  11 месяцев назад +1

      Lo primero, muchas gracias. No conocía mapstruct y me ha gustado bastante, me lo entudio y en cuato pueda haré vídeo. Un abrazo!

  • @brothersbosses1635
    @brothersbosses1635 19 дней назад

    1:55:27

  • @danielcardenas4879
    @danielcardenas4879 11 месяцев назад +1

    andaba aprendiendo spring-security- version 6.0 cuando de la nada salio la 6.1 y cambiaron casi todo y ya empezaba a entender y llevaba 2 meses :/ aunque ahora entiendo algo me falta mas profundisarlo

    • @danielespanadero
      @danielespanadero  11 месяцев назад

      Esto evoluciona a pasos agigantados. La clave está en entender conceptos y no memorizar código. Un abrazo!

  • @87azote
    @87azote 10 месяцев назад +1

    Alguien me explica por que en el for de 1:43:15 el hecho de encontrar en la lista un usuario distinto de null implica que nuestro usuario ya exista por favor? Creo que no lo estoy entendiendo bien. Gran video, lo estoy disfrutando mucho!!!

    • @jhonbaracaldo7650
      @jhonbaracaldo7650 9 месяцев назад +2

      de echo yo cambie el ciclo for, por que solo dejaba registrar un usuario para la modificación del for le dije es que realizara comparación con el email

    • @jhonbaracaldo7650
      @jhonbaracaldo7650 9 месяцев назад +1

      el video es muy bueno a un que siempre quedan unas cositas volando
      pero del resto excelente

    • @danielespanadero
      @danielespanadero  9 месяцев назад +1

      Muchas gracias por tu mensaje y muy buena observación. Me equivoqué en el condicional. En este caso, si getAllUsers no está vacío, simplemente devolverá "User already exists!" sin verificar si alguno de los usuarios existentes tiene los mismos datos que el usuario que se está intentando registrar.
      Este sería el código corregido para validar que no se repite el email, puedes añadir otros campos:
      for (UserEntity existingUser : getAllUsers) {
      if (existingUser.getEmail().equals(user.getEmail())) {
      response.setMessage("Email already exists!");
      return response;
      }
      // Agrega más comparaciones de campos relevantes según sea necesario.
      }
      Mi recomendación en que en vez de en el servicio, esto vaya dentro de la carpeta de UserValidations.
      Mil disculpas por el error. Un saludo.

    • @danielespanadero
      @danielespanadero  9 месяцев назад +1

      Muchas gracias por el aporte Jhon, un abrazo!

  • @gabyyhshss
    @gabyyhshss 7 месяцев назад +1

    Como hacemos para generar una clave privada diferente a la del video? ya que genera igual a la del tutorial, Por cierto 1:59:45 Buena esa de Codear perfecto y que compile sin error! Jajja

    • @danielespanadero
      @danielespanadero  6 месяцев назад +1

      Muy buenas, en principio OpenSSL siempre genera llaves privadas unicas e irrepetibles. Si te fijas en los carácteres son diferentes. Muchas gracias por tu comentario. Un fuerte abrazo! 😁🤘🏻

  • @robertov2554
    @robertov2554 11 месяцев назад +1

    GRANDISIMO DIFF!

  • @AltairSsb
    @AltairSsb 11 месяцев назад +1

    Alguna recomendación para checar lo de los roles del usuario? (que algunos usuarios con cierto rol accedan a ciertas url y otras no )

    • @danielcardenas4879
      @danielcardenas4879 11 месяцев назад +1

      hermano creo que eso se hace en el confi-security archivo principal con el lambad en los accesos que permites con iniciar session o sin iniciar session inculso para usar swager es necesario colocarlo sin autorizar y permitall

    • @danielespanadero
      @danielespanadero  11 месяцев назад

      Correcto, es como dice @danielcardenas4879 no quería cargar el vídeo más de la cuenta. En cuanto saque un rato lo explico en un nuevo vídeo a partir de este. Un abrazo!

    • @valecambria8121
      @valecambria8121 10 месяцев назад

      @@danielespanadero Hola, podrías por favor hacer un video explicando como se lleva a cabo la autenticación en base a este proyecto? Muchas gracias

  • @carlosmendietagpoa530
    @carlosmendietagpoa530 10 месяцев назад +1

    Al momento de generar el token me da un error
    Error generating JWT: Illegal base64 character 2d
    Alguien sabe que podría ser?

    • @danielespanadero
      @danielespanadero  10 месяцев назад

      Muy buenas Carlos. Te comparto mi repositorio en GitHub por si quieres compararlo con tu código. Espero que te sirva, un abrazo!
      github.com/DanielEspanadero/spring-security

  • @NicholasSteveEscalanteOliva
    @NicholasSteveEscalanteOliva 27 дней назад

    Buen día, antes que nada agradecerte por excelente tutorial. Te comento que al momento de ejecutar el loggin en postman me da el siguiente mensaje:
    {
    "error": "Illegal base64 character d"
    }
    HE verificado que el match de las contraseñas es correcto. Puedes ayudarme con eso por favor.

    • @danielespanadero
      @danielespanadero  26 дней назад +1

      El error "Illegal base64 character d" generalmente ocurre cuando el token de autenticación o la contraseña no está codificada correctamente en Base64. En una aplicación Spring Security, esto puede suceder cuando usas autenticación básica (Basic Authentication) y la cabecera Authorization no se ha formado correctamente.

    • @NicholasSteveEscalanteOliva
      @NicholasSteveEscalanteOliva 25 дней назад

      @@danielespanadero pude solucionarlo, muchas gracias por todo crack YOU ARE THE BOSS!!!!

  • @quicktutorial2761
    @quicktutorial2761 7 месяцев назад +1

    excelente. Podrias pasar el codigo fuente de github?

    • @danielespanadero
      @danielespanadero  6 месяцев назад

      Por supuesto, aquí tienes. No olvides dejar una estrella ⭐️
      github.com/DanielEspanadero/spring-security

    • @quicktutorial2761
      @quicktutorial2761 6 месяцев назад

      @@danielespanadero EXCELENTE! cuando podriamos ver algo de testing bien hardcore? gracias

  • @GinoPaoletti
    @GinoPaoletti 6 месяцев назад

    Estaría bueno que expliques lo que haces, no solo copiar codigo

    • @danielespanadero
      @danielespanadero  6 месяцев назад

      Hago una introducción donde explico todos los conceptos que vemos en el código. Mi idea es hacer futuros vídeos profundizando en cada concepto, pero este vídeo está enfocado en gente que no ha visto nunca estos conceptos. Si profundizo en materia, no sería apto para esas personas. Un saludo.

  • @intercambioradial
    @intercambioradial 9 месяцев назад +1

    Pero no estás usando lombok , no vi las anotaciones , solo lo generas con el método tradicional del IDE

    • @danielespanadero
      @danielespanadero  9 месяцев назад +1

      08:59 😅

    • @intercambioradial
      @intercambioradial 9 месяцев назад +1

      @@danielespanadero ahh bien, perdón no escuché esa parte donde dcias que te daba problemas , buenísimo, genial tus videos amigo, Saludos

    • @danielespanadero
      @danielespanadero  9 месяцев назад +1

      No te preocupes, fallo mío. Además no lo explico muy bien. Intentaré solucionarlo lo antes posible ya que Lombok es una herramienta excelente. Un fuerte abrazo!

    • @intercambioradial
      @intercambioradial 9 месяцев назад

      @@danielespanadero dale Daniel , gracias por tus videos , abrazo y suerte!

  • @intercambioradial
    @intercambioradial 9 месяцев назад

    Getter and setter , lombok 🤷🏾‍♂️

    • @danielespanadero
      @danielespanadero  9 месяцев назад +1

      Lo explico en el vídeo 👀

    • @intercambioradial
      @intercambioradial 9 месяцев назад +1

      @@danielespanadero ahh porque vi hasta el minuto 25 y vi que solo le dabas al generate y no usabas las anotaciones de lombok, perfecto

    • @danielespanadero
      @danielespanadero  9 месяцев назад +1

      08:59 😇

  • @khalilelemam1349
    @khalilelemam1349 9 месяцев назад +1

    I hoped it was in english 😢

    • @danielespanadero
      @danielespanadero  9 месяцев назад +2

      I would like to be able to make videos in English in the future. A hug 🙂

  • @hector7029
    @hector7029 7 месяцев назад +4

    Voy a ddar mi opinión y no te lo tomes a mal, pero al final este video es un copia y pega sin explicar absolutamente nada, entiendo que no lo des todo mascado, pero no has llegado a explicar practicamente de que hacen las cosas o por que usar equis funcion. te doy el like por el curro pero es algo a mejorar , aun asi gracias por el video.

    • @danielespanadero
      @danielespanadero  6 месяцев назад +1

      Muchas gracias por el comentario Hector. La verdad es que sería muy complicado explicar cada uno de los conceptos más allá de que es lo que hacen. Es cómo si empiezas a programar en Spring e intentas entender todo lo que hace el framework por debajo. Apunto la mejora y haré una segunda parte de este vídeo profundizando un poco más, aunque no es tarea sencilla de explicar ni de entender. Un fuerte abrazo 🙂

  • @cristhianfajardogil4367
    @cristhianfajardogil4367 9 месяцев назад +1

    Estoy siguiente el tutorial, la verdad muy impresionado con este y el resto de videos de spring, solo una cosa que me esta dando problemas, prmero openssl tuve que ejecutarlo desde la consola de openssl para generar las keys (almenos me ha funcionado) la otra es que en application.properties las lineas :
    jwtKeys.privateKeyPath=jwtKeys/private.key.pem
    jwtKeys.publicKeyPath=jwtKeys/public.key.pem
    Me salen subrayadas con el siguiente warning: Cannot resolve configuration property 'jwtKeys.publicKeyPath.
    No se si mi implementatation de nimbus-jose-jwt no esta bien o que, pero tras eso no me deja usar el JWSSigner, no me lo encuentra.
    Si supieras como arreglarlo te lo agradeceria, saludos y buen video de nuevo.

    • @danielespanadero
      @danielespanadero  9 месяцев назад

      Muy buenas, a veces el IDE da problemas con el application.properties. Puedes asignar el valor directamente a las variables en el código.
      Por si quieres comparar, aquí te dejo el repositorio del proyecto completo:
      github.com/DanielEspanadero/spring-security/tree/main
      Un fuerte abrazo!