Spring Boot 3.0 + Spring Security 6 | JWT Authentication & Authorization | JavaTechie

Поділитися
Вставка
  • Опубліковано 16 січ 2025

КОМЕНТАРІ • 408

  • @KyryloBulyk
    @KyryloBulyk Рік тому +5

    Спасибо!

  • @Thiru-zt5lw
    @Thiru-zt5lw Рік тому +45

    Bro i don't know who are you.. you are God's gift. I am search for a job.. once I got it..I will give super thanks to you

  • @pranaypaul6361
    @pranaypaul6361 7 місяців тому +2

    haven't found anything simpler on JWT Authentication & Authorization than this video! Kudos. You're so so important for the community! Keep making such videos please.

  • @marnasirisha6065
    @marnasirisha6065 Рік тому +5

    One thing I can say..........the best channel I have ever seen....thank u so much sir

  • @GokulCodeFactory
    @GokulCodeFactory Рік тому +23

    What a man you are ? It's not only tutorial for security .It's the night mare for me to achieve security in spring application.Hats off keep the learning spell always on.Thanks a lot!🌟

    • @Javatechie
      @Javatechie  Рік тому +1

      Thank you so much Gokul . Glad to hear that 😊 . Keep learning

    • @SupriyaMondal3
      @SupriyaMondal3 Рік тому +1

      ".It's the night mare for me to achieve security in spring application." ,, ...... really ?

    • @Javatechie
      @Javatechie  Рік тому

      @Supriya are you facing any issue?

  • @karthikshankar5618
    @karthikshankar5618 Рік тому +14

    I have been binge watching many videos on JWT authentication and luckily found this video, you are simply amazing with the way of delivering things sir, thanks a lot and more power to you to roll out such amazing videos in the future

    • @Javatechie
      @Javatechie  Рік тому +1

      Thank you so much Karthik for appreciating it . I am glad to hear that people are getting benefitted with my content

  • @sandeepprabhakula7714
    @sandeepprabhakula7714 Рік тому +4

    Hats off to you sir You literally made Spring Security Easy. I've gone through many lengthy videos but nothing worked your spring security videos made me learn within 2hrs including jwt and basic auth.

  • @rakeshchavan7839
    @rakeshchavan7839 5 місяців тому +4

    Crystal clear explanation and implementation. No need to watch any other video after this.
    Thank you.

    • @Javatechie
      @Javatechie  5 місяців тому

      Thanks buddy keep learning 👍

  • @ashokkumary11
    @ashokkumary11 Місяць тому +1

    Basanth,
    All your courses are simple, straight forward, easy to understand for all levels. Kudos to your efforts.💯

  • @nagamanibuditi7577
    @nagamanibuditi7577 17 днів тому

    I never thought i would be able to understand JWT until i found this video. you really Blessing to us

  • @shubhitembhare7769
    @shubhitembhare7769 Рік тому +2

    Simply amazing Sir. I was struggling for authorization configuration in springboot 3.2.0. You have covered it well.

  • @shigangzhang5662
    @shigangzhang5662 Рік тому +3

    Thanks for the video. I did learn a lot from it.
    A few points: 1. the authentication manager is not recommended although it works, you should come up with your own authentication manager. 2. there is a new nimbus package in the latest Spring security which should be used for encoder and decoder. 3. that filter is not necessary as I understand. You simply provide the encoder and decoder, spring security will automatically take care of the security check for all the configured paths.

    • @Javatechie
      @Javatechie  Рік тому

      Thank you for your suggestion buddy. I will definitely take a look into these changes

    • @RN-jo8zt
      @RN-jo8zt Рік тому

      you mean bcryptpasswordencoder?

  • @SundararajanEaswaran
    @SundararajanEaswaran 2 місяці тому +1

    Your communication is OK kind. But your content, efforts, presentation are really awesome. Keep up your good work sir

  • @kethakaranasinghe941
    @kethakaranasinghe941 Рік тому +1

    Sir, thank a lot for your contribution. I have searched so many methods to implement JWT on my project running on Spring 3.1.5 but couldn't find a proper solution. We need more videos on new releases like this. Thanks a lot!!!🤩

  • @galizischebahn2648
    @galizischebahn2648 Рік тому +1

    incredible! didn't expect to find usage ready solution here, but you nailed it. thanks!

  • @adapamail
    @adapamail Рік тому +1

    Great tutorial those who are moving spring security 6. Awesome! job.

  • @rajyahoob
    @rajyahoob 5 місяців тому +1

    Starting to learn Spring Boot security now, Thanks for your effort as always.

  • @henninb
    @henninb Рік тому +1

    I appreciate the detailed description of this video. Thanks for sharing.

  • @DileepV-on7wk
    @DileepV-on7wk 5 місяців тому +1

    Really Your Tech Gem .. Hands of your clear explanation .. LOVE IT :)

  • @naidu12341
    @naidu12341 Рік тому +1

    No words Mind Blowing session

  • @rishisrivastava5461
    @rishisrivastava5461 Рік тому +1

    Watching your complete series because of the migration project, Thanks a lot again

  • @Mohamad-q2p8v
    @Mohamad-q2p8v 11 місяців тому +1

    I have learned everything I needed to learn, thanks a lot man

  • @ahmadazeem7785
    @ahmadazeem7785 6 місяців тому +1

    Just amazing as always. May God bless you.

  • @johnvick8861
    @johnvick8861 Рік тому +1

    Really helped me for my internship

  • @subhashreesahoo5760
    @subhashreesahoo5760 2 роки тому +3

    Oh wow , thank you so much sir .. i was thinking to request you for this spring security jwt and just found it now . Great ,will cover this in this weekend,thank you 😊

    • @kshitijbansal3672
      @kshitijbansal3672 2 роки тому +1

      Suppose I have a spring boot application which is having multiple instances running (lets say 3 instances are running), and I have a scheduler which is suppose generating a report after every 1 hour, so now my scheduler will start generating the same report for every instance of my application (so it will generate 3 report in total) and which is a wrong thing, so how can we handle such scenario. How to make our scheduler generate only 1 report even if 3 instances are running.
      Today an interviewer asked this question to me and I was clueless about it. Pls help.

  • @SUMITPal-bl2jm
    @SUMITPal-bl2jm Рік тому +1

    Yr explanation is just amazing👍👍

  • @aadiraj6126
    @aadiraj6126 Рік тому +11

    Sir, plz provide flow diagrams of each classes before you code. And also include entire flow with all classes as summary at the end and if possible at very begining. You know the flow, so you find it super easy naming classes, but its tough for any beginners as classes names are big and similar. My hostel juniors gave me this feedback when I shared them ur lecture.

    • @Javatechie
      @Javatechie  Рік тому +2

      Thanks Raj for your suggestion. Noted this and will work on it

    • @samsonmayeem8409
      @samsonmayeem8409 Рік тому +4

      Nevertheless, it's a big-time first-class tutorial regardless.

    • @deeplife9654
      @deeplife9654 Рік тому

      Yes. This is the only thing this tutorial is missing.

  • @kiryls1207
    @kiryls1207 2 роки тому +1

    this happens the first time for me, i just needed a walkthrough in spring3 + jwt and spring security. and well, you provided it 22 minutes ago. +sub

    • @kshitijbansal3672
      @kshitijbansal3672 2 роки тому

      Suppose I have a spring boot application which is having multiple instances running (lets say 3 instances are running), and I have a scheduler which is suppose generating a report after every 1 hour, so now my scheduler will start generating the same report for every instance of my application (so it will generate 3 report in total) and which is a wrong thing, so how can we handle such scenario. How to make our scheduler generate only 1 report even if 3 instances are running.
      Today an interviewer asked this question to me and I was clueless about it. Pls help.

    • @kiryls1207
      @kiryls1207 2 роки тому

      @@kshitijbansal3672 holy ffffu. it's more like:
      - how many hours did you mess with spring framework, tinkering here and there?
      - yes

    • @kshitijbansal3672
      @kshitijbansal3672 2 роки тому

      @@kiryls1207 if you know the solution, you can, don't ask unnecessary questions

    • @kiryls1207
      @kiryls1207 2 роки тому

      @@kshitijbansal3672 i saw guides and tutorials about spring concurrency and threading. i don't know the solution, i just started with spring

    • @Javatechie
      @Javatechie  2 роки тому

      In that scenario you need to configure your scheduler related properties in only one instance
      For example let's say you have instance 1 ,2 and 3
      You want to run your scheduler only in instance 1 in that case create all properties of scheduler like cron expression, time zone etc only in instance 1 configuration
      When i say instance 1 configuration i mean just find a place where you can load required properties

  • @Mahmudulhasan-ts5hm
    @Mahmudulhasan-ts5hm Рік тому +1

    thanks, great video. I have followed lots of youtube videos only this code working properly. thanks again.

  • @ApurvTripathi-mc3iy
    @ApurvTripathi-mc3iy Рік тому +1

    Amazing video, you made so easy, understood every part

  • @rangasudeep1198
    @rangasudeep1198 2 роки тому +1

    Thanks basant for the detailed video about jwt

  • @navaugustt
    @navaugustt Рік тому +1

    Another nice explanation video ❤

  • @dn.n23
    @dn.n23 4 місяці тому +1

    Nice explanation.......❤

  • @SuperYkf
    @SuperYkf Рік тому +2

    This is so well explained! Thank you!

  • @kamleshpatil1959
    @kamleshpatil1959 Рік тому +1

    Your explanation is really good, thanks for making tutorial

  • @karthickn956
    @karthickn956 Рік тому +1

    Great explanation sir thanks lot

  • @javarider7760
    @javarider7760 Рік тому +1

    This is very right way explain.

  • @kishordige9721
    @kishordige9721 2 роки тому +1

    Present when needed. Thank you!

  • @Adeel-Verse..
    @Adeel-Verse.. 2 роки тому +1

    Thankyou so much for this
    I have got a task to build jwt auth
    This will be very helpful for me

  • @kaveeshbhashitha7652
    @kaveeshbhashitha7652 12 днів тому +1

    Thank you very much ❤

  • @aneksingh4496
    @aneksingh4496 Рік тому +2

    Nice ...keep posting some complex spring boot projects...

  • @harllemalves1590
    @harllemalves1590 Рік тому +1

    Great video, thanks for all the explanation!

  • @parmarkamlesh6493
    @parmarkamlesh6493 Рік тому

    Nicely covered both authentication and authorization.

  • @mohamedsubaird
    @mohamedsubaird Рік тому +1

    Thanks for choosing this topic. And make a Oauth 2 verification video in spring boot 3

  • @justAnotherJavaGuy
    @justAnotherJavaGuy Рік тому +1

    Amazing video with covering all the aspect of JWT in latest version of spring boot.
    Thank you for the in detailed walkthrough.
    Please make one video on internals of spring boot security internals with new classes in involved latest version

    • @Javatechie
      @Javatechie  Рік тому

      Glad it was helpful! Yes it's in my queue soon i will do that

  • @aribasiebel
    @aribasiebel 8 місяців тому

    Love the popping sounds

  • @v4vang394
    @v4vang394 Рік тому +1

    i from vietnam, thanks your video

  • @ashishyadav4510
    @ashishyadav4510 2 роки тому +1

    Greate explanation sir! as always 🙏🙏.

  • @gunarajesh1
    @gunarajesh1 Рік тому

    Worth watching your videos

  • @ganny9305
    @ganny9305 2 місяці тому +1

    Really helpful thanks.

  • @medAmineRg
    @medAmineRg Рік тому +1

    thank you man, that was very helpful

  • @sonukumar-of4pq
    @sonukumar-of4pq 3 місяці тому +1

    Sir G- i believe you are saving the life of more than 95% programmer who is getting through your sessions. Because i am damm sure, eventually the search for a good content could have end up to one and only your session.. Thanks Man..

    • @Javatechie
      @Javatechie  3 місяці тому

      Thank you so much sonu for your word. Keep learning that's what my gift 🎁 buddy

  • @benjiealcontin7867
    @benjiealcontin7867 Рік тому +1

    Thank you sir, more videos , I'm beginner :)

  • @azwealthtips
    @azwealthtips Рік тому +1

    as per my understanding we should not hit db again for jwt token validation and we should recreate token with given header and payload and compare it with resent token, however i understand we can not verify roles with that, so there is some gap in this and i am not sure yet how that will be done.

    • @Javatechie
      @Javatechie  Рік тому

      We do validate roles with annotation @PreAuthorize

    • @azwealthtips
      @azwealthtips Рік тому

      JWT (JSON Web Tokens) are designed to be self-contained, containing all the necessary information within the token itself. Once a user is authenticated and a JWT is issued, the server can verify the token's integrity and extract relevant information without needing to contact the user database for every request. I see in our example we fetched data from user details db again which may not be right way to use jwt as the purpose of using jwt is to avoid hitting db/cache for every login request, please clarify@@Javatechie

    • @PkSam07
      @PkSam07 Рік тому

      ​​@@JavatechieYes, I too didn't understood couple of things-
      1. Y u r generating token through a rest end point via @requestBody param? I think It sud b generated via filter u created. If(extractedToken= null) then create json token and should be set in context..or?
      2. In ur filter, u r using userDetailService.loadUserByUserName(username) ..this username is same u extracted from ur token? Then, obviously both will be validated? Instead u should match user from token with the logged on user?

  • @punamroy6639
    @punamroy6639 6 місяців тому

    Thank you sir for this video. It is really very helpful.

  • @thomasanthony.t952
    @thomasanthony.t952 3 місяці тому +1

    bro just nailed it

  • @abdulsattarshaikh9758
    @abdulsattarshaikh9758 Рік тому +1

    Nice tutorial sir

  • @nanduchopade2910
    @nanduchopade2910 Рік тому

    Best Tutorial ever bro thank you somuch

  • @yogeshpatil-vx2pi
    @yogeshpatil-vx2pi Рік тому +2

    Thats a great stuff as always :) . .. One request to you ..can you create one video on Spring Security OAuth Authorization Server using spring boot 3.0 .. Thanks again.. keep up good work :)

  • @roshanpatro5777
    @roshanpatro5777 Рік тому +1

    Again an amazing tutorial. I can't thank you enough. ❤

  • @supratimnayek2776
    @supratimnayek2776 Рік тому +1

    Amazing. Thank you so much

  • @funcoding1797
    @funcoding1797 Рік тому +1

    Thanks , your tutorial clips are the best.

  • @lxdzii
    @lxdzii 8 місяців тому +2

    amazing tutorial!

  • @sujatharam
    @sujatharam Рік тому

    A really nice explanation . Very helpful

  • @supratimdatta7848
    @supratimdatta7848 8 місяців тому

    Very good content. Thank you very much!

  • @SADDAMHUSSAIN-wy5kf
    @SADDAMHUSSAIN-wy5kf Рік тому +2

    Perfect Example for Spring Securrity !
    Sir can you please guide how @PostMapping("/authenticate") end point is working internally? How it reading user from DataBase! although we are not using any repository in this end point. How AuthenticationMangar finds the correct user name from database?

    • @Javatechie
      @Javatechie  Рік тому +1

      It will be dead easy to understand if you can debug then nothing complex buddy.
      I would strongly suggest you to refer to the video below to understand the internal flow
      ua-cam.com/video/1ERV-6cz2xk/v-deo.html

    • @SADDAMHUSSAIN-wy5kf
      @SADDAMHUSSAIN-wy5kf Рік тому +1

      ​@@Javatechiewow luckely I was already wathcing it ! Thank you so much for your respone ! Thank you again for making things very simpliers

  • @all-in-Recipes
    @all-in-Recipes 10 місяців тому

    Well explained 🙂

  • @victormotorin237
    @victormotorin237 Рік тому +1

    Hi I have a question, at 34:13 while checking for null and bearer, why we are giving space after Bearer?

    • @Javatechie
      @Javatechie  Рік тому

      In postman while selecting auth header by default it will add one additional space

    • @victormotorin237
      @victormotorin237 Рік тому +1

      @@Javatechie but if we give just the bearer.. without any space will it not work or there would be multiple result for tha string?

    • @Javatechie
      @Javatechie  Рік тому

      No it won't work . To do quick testing just add a break point in filter class and check the value

    • @victormotorin237
      @victormotorin237 Рік тому +1

      @@Javatechie ok thanx 😊, very informative video though 👍🏼

  • @SawanKumar-yg1em
    @SawanKumar-yg1em Рік тому +1

    Thank you so much sir.

  • @rohinikulkarni8097
    @rohinikulkarni8097 Рік тому

    very nice explanation

  • @ChamaraBandara-t9b
    @ChamaraBandara-t9b Рік тому +1

    Excellent! Love it

  • @ThrottleJourneys
    @ThrottleJourneys Рік тому +1

    Love you bro ! Thanks alottttt

  • @MegaGustavosc
    @MegaGustavosc Рік тому +2

    I implemented this JWT Authentication and Authorization, and when I call the endpoints via Postman everything works perfectly. The problem is that I'm trying to write unit tests for my controllers using JUnit 5, but all endpoints always throw 403 Forbidden. Even when I use the @WithMockUser annotation, the same problem continues.
    Does anyone know what the problem could be?
    Did someone who implemented this JWT Authentication and Authorization manage to do the unit tests for the controllers?

  • @hackstreet781
    @hackstreet781 Рік тому

    Wanted to add one point: if we are generating token only when user register or login then in validation process, we can skip fetching user details from db because if the token is modified then it will be invalid token when we match it using our secret. So, If the token is valid then we can save it to our security context always.This is my understanding. Please add to it if something is incorrect or I am missing something.

  • @JuanEstebanNarvaez-e6y
    @JuanEstebanNarvaez-e6y Рік тому +1

    Thank you so much master, te amo

  • @karthikgaddam831
    @karthikgaddam831 2 місяці тому +1

    Thanks , love it

  • @harrishpaul7374
    @harrishpaul7374 Рік тому +1

    Where u create product table ? Or I need to create it

    • @Javatechie
      @Javatechie  Рік тому

      Spring data jpa will create for you. Manual intervention is not required just make Sure to configure hbm2.auto.ddl.in application.yml or properties file

  • @haidertest1809
    @haidertest1809 4 місяці тому +1

    Thank you for this, is there a chance of you making a full stack tutorial with Java and React in future. It will be really helpful.

  • @TalhaRizwan-jg2li
    @TalhaRizwan-jg2li 7 місяців тому +1

    in this flow can we add authentication using goolge etc.?

    • @Javatechie
      @Javatechie  7 місяців тому

      Yes absolutely we can

  • @alitest-e4t
    @alitest-e4t 10 місяців тому

    thanks for excellent video

  • @SandeepPrajapati-xu9ru
    @SandeepPrajapati-xu9ru Рік тому +1

    such great tutorial, explained in simple way, help be crash course through it and build a new micro service implementing spring JWT authentication, thank you so much

    • @Javatechie
      @Javatechie  Рік тому

      Thanks buddy, What are you looking for here it is ua-cam.com/video/MWvnmyLRUik/v-deo.html

  • @ayushgupta-pj5sq
    @ayushgupta-pj5sq Рік тому +1

    you passed claims map empty (During token generation), what is the use of that i did n't get that point? can you please elaborate that little more.

  • @natureloverJ
    @natureloverJ Рік тому +1

    Highly appreciated

  • @kalaiselvankesavel2971
    @kalaiselvankesavel2971 Рік тому +1

    ❤Great demo

  • @manojpatil2457
    @manojpatil2457 Рік тому

    27:20 How does AuthenticationManager knows it needs to lookup 'userinfo' table to verify username ?

  • @treefrog9392
    @treefrog9392 Рік тому

    At 17:45, how did you define the key string with the class label SECRET? I cannot find documentation on this and I have no idea how you did it. It happened very fast.

  • @Harendra_84
    @Harendra_84 2 роки тому +1

    Thank you 💖

  • @HarishKumar-vz4if
    @HarishKumar-vz4if Рік тому +1

    Can you please do this using Reactive approach, it will help us.

  • @brahmanandas1909
    @brahmanandas1909 2 роки тому +1

    Thank you sir

  • @sumantaghosh4239
    @sumantaghosh4239 Рік тому +1

    Thanks Buddy, can you make a video integrating jwt on api gateway

    • @Javatechie
      @Javatechie  Рік тому

      Please check this ua-cam.com/video/qODoDq5_hAM/v-deo.html

  • @anujchetan007
    @anujchetan007 Рік тому

    do you have any example with Keycloak RBAC ? or any help?

  • @manjosh1990
    @manjosh1990 11 місяців тому

    Excellent video. I also wanted to know how to implement logout. Can you show a sample with the same example?

  • @tanmaybhadra3314
    @tanmaybhadra3314 Рік тому +1

    Hi , I have a small request. Might be funny for some. Can you please create a small video on roadmap. Like roadmap for spring security, roadmap for spring boot or core. So that everyone can have a idea what to start first and what not.
    Thank you

    • @Javatechie
      @Javatechie  Рік тому +1

      No it's not at all funny Budd y don't worry. spring boot road map i will prepare one video where i will cover all modules. Most probably this weekend or next okay

  • @alfahidi7018
    @alfahidi7018 Рік тому +1

    One thing I realized, in your extractAllClaims method, the jtw parser throws exceptions that are not caught. For example, if the token is expired it throws a ExpiredJWTException! So you checks for istokenexpired is moot.

  • @racot7145
    @racot7145 Рік тому +1

    Have a question about roles. I saw some video where they didn't user preauthorize annotation. But used enum role. What is the best approuch ?

    • @Javatechie
      @Javatechie  Рік тому

      Without @PreAuthorize not sure . Will check and update

  • @giaphongtran9181
    @giaphongtran9181 Рік тому

    Can you help me with an implementation idea about asymmetric encryption

  • @jaripatidevendra6172
    @jaripatidevendra6172 Рік тому +1

    can we use both controller and Restcontroller in single apllication

  • @stevefox2318
    @stevefox2318 2 роки тому +1

    Hell yeah thanks man 🔥

  • @ajisegirisunday2885
    @ajisegirisunday2885 2 роки тому +1

    Well done Basant but I have a question.. Let's say i have multiple instances of my app.. How do I configure the authentication manager with Redis.. Thanks

    • @Javatechie
      @Javatechie  2 роки тому

      You need to configure it in API gateway not in each microservice

    • @ajisegirisunday2885
      @ajisegirisunday2885 2 роки тому

      @@Javatechie yes I understand but I am talking of monolith applications but scaling to multiple instances.. How do I go about that

  • @VankadaruRohithPanduRangaRao
    @VankadaruRohithPanduRangaRao Рік тому +1

    please share that Encryption key generator website

    • @Javatechie
      @Javatechie  Рік тому

      It's there in the video description please check