Spring Security y Autentificación con Spring Data JPA

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

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

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

    Muchas gracias maestro por tu generosidad al compartir esta enseñanza, resultando muy fundamental y de gran valor, para lograr un conocimiento bien detallado en el uso de esta gran herramienta. Felicidades totales...

  • @alejandrosantana4259
    @alejandrosantana4259 Год назад +1

    La mejor explicacion que vas a encontrar en espanol. Que bueno encontrar a un cubano explicando estos temas.

  • @el_yisusT
    @el_yisusT Год назад +4

    Gracias tio Dave. Porque el tutorial es con lo mas reciente y no hay casi incluso a día de hoy.

  • @PabloFuentes-f2d
    @PabloFuentes-f2d Год назад +2

    El mejor tutorial que he encontrado en RUclips hasta la fecha sobre este tema. Un millon de gracias.

  • @MrShadow732
    @MrShadow732 Год назад +2

    Terminado el primer video y a verdad que me encantó, muy bueno para una introducción. La verdad que me parece muy completo para ir iniciando en todo lo que es Security y a seguir aprendiendo. Muchas Graacias Dave's porque siempre respondes a los mensajes y colaboras en la resolución de errores.

  • @CristopherVergaraColombo1
    @CristopherVergaraColombo1 Год назад +1

    Este canal sera grande 🌋

  • @tomasiglesias4566
    @tomasiglesias4566 Год назад +2

    Fantástico tutorial. Estuve semanas buscando más información además de la documentación de Spring Security 6 ya que no la había entendido muy bien. Muchas gracias!

    • @uncledavescode
      @uncledavescode  Год назад

      Gracias por pasar por acá. Si, la documentación de Spring deja un poco que desear, para cualquiera de sus proyectos, no solo Spring Security. Saludos

  • @PruebaPrueba-h1w
    @PruebaPrueba-h1w Год назад +1

    Muchísimas gracias, esta información es ORO PURO, es el video más completo. 🤑

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

    muy buen video, 2 dias intentando aprender y es el mas claro

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

      Gracias por pasar por acá.. igual voy a tener que actualizar esos videos. Saludos

  • @miltonomarbrisenogarcia2303
    @miltonomarbrisenogarcia2303 Год назад +1

    Muhcas gracias no dejes de crear contenido tienes un seguidor por aqui

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

    Excelente video!!!

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

    Gracias por tanto!!! like desde 3 cuentas

  • @luchonoprograma203
    @luchonoprograma203 Год назад +1

    Esto es lo que necesitaba

  • @ronaldgarciavazquez8232
    @ronaldgarciavazquez8232 Год назад +1

    Si duda el mejor ..gracias

  • @francovedia5584
    @francovedia5584 2 года назад +1

    gracias, gran contenido, de lo mejorcito que he visto.

  • @lionelchoque3281
    @lionelchoque3281 Год назад +3

    Gracias por el contenido, por favor sigue profundizando sobre estos temas! estaria bueno la implementacion de Oauth2 con JWT

  • @fura-tan
    @fura-tan Год назад +1

    Casi quedo ciego pero fue un buen video :')

  • @Angel-oc6oy
    @Angel-oc6oy Год назад +1

    Buen tutorial, tengo una duda, como es que spring boot sabe que debe correr la clase Runner si no fue invocada por ningún controlador

    • @uncledavescode
      @uncledavescode  Год назад +2

      La respuesta simple parte por dos cosas..
      Lo primero es que la clase está marcada con la anotación @Component lo que hace que Spring la detecte automáticamente como un Bean y pueda crear una instancia de la misma.
      Lo segundo es que la clase en sí implemente la interfaz CommandLineRunner, esto hace que Spring una vez creada la instancia del Bean y este implemente este interfaz, ejecute el método run().
      En una App con Spring puedes tener varios Beans que implementen esta interfaz, los que quieras, no tiene que ser uno solo… pero si quieres que se ejecuten en determinado orden puedes utilera la anotación @Order
      Espero que te haya podido ayudar. Saludos

  • @fedeSuperPro
    @fedeSuperPro Год назад +1

    Buenas, xq en el userRepository pones la devolucion del user como optional?

    • @uncledavescode
      @uncledavescode  Год назад +1

      Hola @fedeSuperPro,
      Mira, no hay nada escrito en que se pueda retornar directamente la Entidad o un Optional, con el Optional nos aseguramos de que vamos a tener un resultado, y no lanzaremos un NullPointerException por cualquier motivo, si te fijas en la clase SecurityUserDetailsService donde se hace la llamada a ese método es mucho más cómodo preguntar si existe el usuario utilizando los métodos de Optional (isPresent), no es más simple pero por lo menos para mi es más claro. No hay una ventaja en cuanto a rendimiento ni nada parecido.
      Concidero una buena práctica utilizar Optional cuando no estamos seguro de que la Entidad existe y que el resultado puede ser vacío.
      Pero no hay nada más que eso. Puedes utilizar la via que quieras siempre y cuando el código sea lo más claro posible para el próximo desarrollador o para ti mismo cuando veas ese código 2 años después.
      Saludos

  • @Fran-lu2rf
    @Fran-lu2rf Год назад +1

    Gracias. Todo funcionó a la perfección, sin embargo solamente con las peticiones get. Con post, put,... tengo problemas con csrf, y no me gustaría desactivarlo. ¿Cómo podría solucionarlo?

    • @uncledavescode
      @uncledavescode  Год назад

      Hola @Fran-lu2rf, gracias por pasar por acá.
      El habilitar o no CSRF va a depender de tu desarrollo, si lo que tienes es una API REST, la teoría es que debe ser stateless, no debe aceptar o utilizar datos del usuario provenientes de cookies, incluso, aunque en la petición vengan cookies, estas deben ser ignoradas.
      Si utilizas cookies para la autentificación entonces CSRF debe estar habilitada, si utilizas autentificación básica para acceder a esos servicios entonces dejarían de ser stateless y necesitas habilitar CSRF.
      Por lo general para asegurar APIs REST se utilizan otros mecanismos de autentificación, por lo general OAuth, estoy tratando de preparar un video sobre el tema porque ha sido consulta permanente.
      Si tienes alguna otra duda, me puedes escribir al email.
      Saludos

    • @maurenrivera9105
      @maurenrivera9105 Год назад

      Pudiste solucionarlo?

    • @Fran-lu2rf
      @Fran-lu2rf Год назад

      @@maurenrivera9105 Hola, voy a volver a retomar el tema, lo que me quedó claro es que debo de utilizar Oauth2.

  • @manafun3
    @manafun3 Год назад +1

    Como hace para añadir las dependencias en intellj para su proyecto luego de crearlo a mi no me sale esa opción de edit starter

    • @uncledavescode
      @uncledavescode  Год назад +1

      Hola @manafun3, para ese momento tenía un plugin pago, pero lo dejé de utilizar, la verdad que no aportaba mucho. Spring Boot Helper
      Saludos

    • @manafun3
      @manafun3 Год назад

      @@uncledavescode gracias ☺️

  • @jhulianaandreagonzaleztorr1964
    @jhulianaandreagonzaleztorr1964 Год назад +1

    Hola, he configurado tal cual, pero cuando estaba por default me funcionó de maravilla, cuando personalicé, ya no me está autenticando nada, permite ver sin autorización de nada....

    • @uncledavescode
      @uncledavescode  Год назад

      Hola Jhuliana, me puedes escribir al mail con los detalles y ahí te puedo ayudar. Gracias por pasar por acá.Saludos

  • @kevinmc24
    @kevinmc24 Год назад +1

    que usas ña completar código

    • @uncledavescode
      @uncledavescode  Год назад +1

      Copilot, lo uso más en los videos que en la vida real. Me ayuda a que lo videos duren menos. (-;

  • @XavierRomeroLopez
    @XavierRomeroLopez 2 года назад +1

    Github del código no esta actualizado tienes el código completo

    • @uncledavescode
      @uncledavescode  2 года назад +1

      Actualizado el código estimado, gracias por pasar por acá. Saludos

  • @VyVy-dp7wd
    @VyVy-dp7wd Год назад +1

    Thank you

  • @XavierRomeroLopez
    @XavierRomeroLopez Год назад +1

    Amigo termine el video muy bueno pero clase WebSecurityConfig ya no tendría ninguna funcionalidad creo esta de mas ya que no se la usa para nada ?

    • @uncledavescode
      @uncledavescode  Год назад

      Hola Xavier,
      Si mueves el bean passwordEncoder que todavía está en esa clase entonces la puedes eliminar.
      Ese bean es necesario para manejar la codificación de las contraseñas, igual este tema hay que complementarlo con los otros videos que le siguen hablando de autorización y ahí verás un nuevo bean el securityFilterChain, pero si, es como dices, podemos eliminar esa clase siempre que dejemos el bean passwordEncoder en otro lugar.
      Saludos y gracias por pasar por acá.

  • @dantelife1
    @dantelife1 Год назад +1

    Hola, al iniciar el programa me aparece este error "failed to lazily initialize a collection of role: com.shop.demo.model.User.authorities: could not initialize proxy - no Session" tienes alguna idea de que puedo estar haciendo mal?? vi 3 veces el video viendo si hice algo mal pero no encuentro nada :c

    • @uncledavescode
      @uncledavescode  Год назад

      Hola, si puedes compartir el código que tengas y enviarme el enlace a mi correo. Ahí puedo revisar y te digo que si veo algo. Saludos

  • @bodyweightforce5518
    @bodyweightforce5518 2 года назад +1

    Tiene alguna extension o algo para hacer la importación de dependencias de manera local?? yo no tengo esas opciones en mi intellij Community

    • @uncledavescode
      @uncledavescode  2 года назад

      Hola, a que te refieres con importación de dependencias? hablas de maven?

    • @bodyweightforce5518
      @bodyweightforce5518 2 года назад +1

      @@uncledavescode si justamente eso

    • @uncledavescode
      @uncledavescode  2 года назад +2

      Ok, para las dependencias de Springboot prueba con el EditStarters
      Saludos.
      plugins.jetbrains.com/plugin/11543-editstarters

  • @alfonsodejesusgarces7744
    @alfonsodejesusgarces7744 Год назад +1

    Por que no me genera la contraseña de spring security?

    • @uncledavescode
      @uncledavescode  Год назад

      Hola Alfonso, gracias por pasar por acá.
      En un proyecto de Spring boot con solo agregar la dependencia de Spring Security ya debe generar la contraseña. Si tienes problemas sube tu código a GitHub y escríbeme al mail para revisarlo. Saludos.

  • @fedeSuperPro
    @fedeSuperPro 2 года назад +1

    Hola, tienes una guía o video que expliques como utilizar el IDE Intellij? Auto completados, accesos rapidos, como crear plantillas, etc? me fachina la facilidad y rapidez con la que lo haces. Saludos, excelente video!

    • @uncledavescode
      @uncledavescode  2 года назад +1

      Hola, no tengo guias de intellij en el canal, buen IDE, en mi opinión, para Java es lo mejor. También para hacer las cosas más rápidas sobre todo para los videos y no tomarme mucho tiempo , en la mayoría de los casos de autocompletados, son gracias a Github Copilot, una IA para desarrollar.
      Saludos y gracias por pasar por acá.

    • @MrShadow732
      @MrShadow732 Год назад

      @@uncledavescode eso justo estaba por preguntar gracias por la respuesta

  • @marianojm5675
    @marianojm5675 Год назад +1

    Podrias hacer un video para alguien que recien inicia con Spring? Gracias

    • @uncledavescode
      @uncledavescode  Год назад +1

      Hola Mariano, gracias por pasar por el canal.
      Debo hacer un video de este tema, sobre todo de Spring Boot, igual si estás comenzando te recomiendo ver este tema. Es sobre inyección de dependencias, concepto que se ve tanto en Spring Boot que parece algo normal.
      ruclips.net/video/b2TJpouhURQ/видео.html
      Saludos

  • @nestorsolera6788
    @nestorsolera6788 2 года назад +1

    Me salvaste la patria toda la info que encuentro es para spring 2.7
    hay mucho hate hacia spring 3.0 por lo que veo XD

    • @uncledavescode
      @uncledavescode  2 года назад +1

      Gracias por pasar por acá, la verdad creo que van a salir temas poco a poco, la mayoría de las cosas que vemos con spring boot 3 ya se podían implementar con la versión anterior, lo que muchos han seguido ocupando métodos que hacía mucho tiempo estaban marcados como deprecados. Saludos.

    • @nestorsolera6788
      @nestorsolera6788 2 года назад +1

      @@uncledavescode si es horrible hay mucho material ahora que esta deprecado.

    • @uncledavescode
      @uncledavescode  2 года назад +2

      Si, he sacada algo de Spring Security, aunque me quedan como 2 o 3 temas por tocar, también hay cosas pendientes con JPA, en fin, muchos temas y poco tiempo, pero van a salir xd. Saludos

  • @raulfernandez7715
    @raulfernandez7715 Год назад

    Genial video, enhorabuena!! Tengo un problema, a pesar de indicarle las credenciales que quiero usar, me sigue generando una contraseña por defecto y me impide usar las que yo le he indicado. He seguido los mismos pasos que tu pero nada, no hay manera de resolverlo.

    • @uncledavescode
      @uncledavescode  Год назад

      Hola, asegúrate de que la clase SecurityUserDetailsService tenga la anotación @Service y WebSecurityConfig la anotación @Configuration, si puedes compartir el código lo puedo revisar si me pasas el link al email. Saludos

  • @KathePrc
    @KathePrc Год назад +1

    me encanta el contenido y la explicacion! pero no te duelen los ojos con el modo claro? asjalskj

    • @uncledavescode
      @uncledavescode  Год назад

      Gracias... La verdad prefiero el fondo blanco, no se, debe ser tema de costumbre. saludos

  • @THELUIGY13ETV
    @THELUIGY13ETV 2 года назад +1

    Muy buena explicación. ¿Dictas cursos completos de Spring?

    • @uncledavescode
      @uncledavescode  2 года назад +2

      En realidad, no, voy sacando videos sobre temas específicos, he sacado varios de Spring Security, faltan un par más, están relacionados, pero pueden verse de forma independiente.
      Lo mismo hice cuando saqué varios videos de Spring Data JPA.
      Consume algo de tiempo y a veces quisiera publicar más de lo que puedo.
      Gracias por pasar por acá.

  • @MrShadow732
    @MrShadow732 Год назад +1

    Podrías compartir cada vez que haces un tutorial, la base de datos que usas, para poder hacer las prubeas con la misma DB sin problemas

    • @uncledavescode
      @uncledavescode  Год назад +1

      Gracias a tí, saludos

    • @MrShadow732
      @MrShadow732 Год назад +1

      @@uncledavescode hay posibilidades de que cuelgues la base de datos para descargarla. Anoche me quedé en la parte de agregar la base de datos justamente porque no la tengo

    • @uncledavescode
      @uncledavescode  Год назад

      La base de datos como tal no la tengo, con Spring Data JPA, con la forma en que configures la aplicación, las tablas se puden ir creando solas, que creo que es el caso. Lo que necesitas tener es cualquier motor de BD instalado en tu PC, crear una BD manual y configurar la conexión a la misma. Si tienes dudas me puedes escribir al email, pero además en el canal hay varios temas relacionados a Spring Data JPA.

    • @MrShadow732
      @MrShadow732 Год назад +1

      @@uncledavescode claro la idea era probar una base de datos con postgresql pero no pasa nada lo haré con mysql

    • @uncledavescode
      @uncledavescode  Год назад +1

      Si lo que tienes es SQL cambia
      spring.jpa.hibernate.ddl-auto=create
      spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
      spring.datasource.url=jdbc:mysql://localhost:3306/base_de_datos
      spring.datasource.username=usuario
      spring.datasource.password=contraseña
      lo bueno de Data JPA es eso, una buena abstracción para cualquier tipo de BD

  • @JonathanOrtiz-nc8yl
    @JonathanOrtiz-nc8yl Год назад +1

    explica lo que hace pero no el porque ni para que

    • @uncledavescode
      @uncledavescode  Год назад

      Gracias por pasar por acá. Hay un par de videos antes hablando de Spring Security, otros de Spring Data JPA. Este video no es el más básico de todos, parte de la idea que se conoce las bases anteriores. Saludos

    • @JonathanOrtiz-nc8yl
      @JonathanOrtiz-nc8yl Год назад

      @@uncledavescode pero no lo haces con los temas de esta clase

    • @uncledavescode
      @uncledavescode  Год назад

      No se a que te refieres, este video se trata de como autentificar un usuario que tengas registrado en un BD, a diferencia de los otros que el usuario estaba en duro, se agrega JPA para ese tema. Si tienes dudas sobre el tema escríbeme al correo para ver bien lo que dices. Saludos

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

    bro, muy chido y todo el video, pero explica cada cosa, no asumas que la gente sabe de lo que estas hablando ni esperes que la gente entienda sin explicar, explica como funciona cada cosa y no solo escribas codigo, la verdad no entendi un culo para que sirve cada cosa

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

      me reí un rato xd. Ahora en serio, si, tienes razón, ese video no es para comenzar, en el canal hay una lista de reproducción titulada Spring Boot, va de menso a más ahí. Saludos

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

      @@uncledavescode esta bien, muchas gracias :3

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

      Seguridad es uno de los temas mas avanzados que hay en lo que se refiere a hacer apis con spring boot. Si no entendiste un culo es porque no sabes nada. Debes buscar tutoriales para principiantes y no esto.