Spring boot 3 Keycloak integration for beginners | The complete Guide

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

КОМЕНТАРІ • 381

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

    Join the Micro Services course waiting list and get and get an exclusive EARLY-BIRD discount
    aliboucoding.ck.page/d0f9317e13

  • @especializacionIngenieriaSoftw
    @especializacionIngenieriaSoftw 8 місяців тому +26

    For those who get this in postman (minute 30:34)
    {
    "error": "invalid_grant",
    "error_description": "Account is not fully set up"
    }
    What worked for me was: setting the email, firstname and lastname for the user.

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

    Finally a tutorial that explains very well how keycloak works and its integration with springboot, thank you 🙏🏾

  • @ershadahamed8928
    @ershadahamed8928 6 місяців тому +10

    Those following this video, pls disable all the required actions in Configure -> Authentication -> Required actions tab. Applicable for keycloak 24.0.5.

  • @arefsa6
    @arefsa6 Рік тому +13

    Dear alibou,
    I wanted to take a moment to say thank you for your amazing tutorial video on UA-cam about Keycloak and its implementation in Spring Boot. Your video was incredibly helpful and easy to understand.
    I really appreciate how you explained the concepts of Keycloak and showed how it can be integrated with Spring Boot. Your explanations were clear and straightforward, making it easy for me to follow along.
    If possible, it would be great if you could create a video tutorial specifically focusing on the authentication flow. This would greatly enhance our understanding of the topic.
    Additionally, I would love to see a video tutorial on debugging in IntelliJ IDEA. As a beginner developer, learning effective debugging techniques is crucial, and I believe your guidance would be highly beneficial.
    Thank you once again for creating such valuable educational content. Your videos have significantly improved my understanding of Keycloak and Spring Boot, and I eagerly look forward to watching more of your tutorials in the future.
    Best regards,
    ArefSa

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

      I really appreciate this comment.

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

    Dear Alibou, I want to express my gratitude for you taking time to create a so detailed and rich explanation on how to integrate KeyCloak in Java Spring Boot.
    Many thanks!

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

      Glad it was helpful!

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

    at 30:45 if any one facing the following error
    ``` {
    "error": "unauthorized_client",
    "error_description": "Invalid client or Invalid client credentials"
    }
    ```
    also include client_secret as a parameter, the value can be find in your realm -> clients -> credentials -> Client Secret.

  • @vuongo9949
    @vuongo9949 Рік тому +10

    I'm a Java fresher, and this time I want to work on a personal project involving Spring Security combined with JWT and OAuth2. I have watched many of your tutorial videos, and I must say they have been extremely helpful to me. Thank you for all the knowledge you have provided.

  • @zahirulislam2097
    @zahirulislam2097 Місяць тому

    Very helpful. I was able to follow along except "invalid_grant" error which I saw later in the comment section. Thank you very much.

  • @mouradeljayi584
    @mouradeljayi584 Рік тому +10

    The best spring boot teacher

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

    Danke!

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

      I really appreciate that ❤️❤️

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

    With quarkus you don't need to write this bunch of classes and settings, just use a single @ROLES notation. Spring still has a lot to evolve compared to other frameworks. Actually what saved Spring was the Graal VM

    • @BoualiAli
      @BoualiAli  Рік тому +6

      Spring is always 3 years (at least) ahead of the rest of the frameworks.
      For quarkus, I need to try it and the we can discuss

    • @amitkriit
      @amitkriit 9 місяців тому +2

      Spring is more mature and better documented.

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

      I would still go with spring because my company uses it.

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

    Thank you. I'm watching the second video on security in Spring boot on your channel and I'm absolutely delighted! No one has explained better yet.

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

      I’m super happy to know that. Happy to have you here

  • @TheoMnc
    @TheoMnc 9 місяців тому +1

    Good video. 43:44 when i put the bear token it tells me also unauthorized ! anyone had the same problem ?

  • @abushdesalegn9867
    @abushdesalegn9867 2 місяці тому

    Thank you for helping on this. I have a question: @28:01 why there is a need to assign client_admin role to user alebou? since the Admin has that role already. I believe this is duplicate.

  • @mohamednibras53
    @mohamednibras53 5 місяців тому +2

    Those who received "invalid_grant, Account is not fully set up" error, please mention the user's firstname, lastname, and email even though they are not marked mandatory.

  • @enricomontesi6281
    @enricomontesi6281 9 місяців тому +1

    Thank you for the video. Your english is really understandable

    • @BoualiAli
      @BoualiAli  7 місяців тому +1

      You're welcome 😊

  • @PhillcoAmaru
    @PhillcoAmaru 2 місяці тому

    Thanks for your great tutorial, Alibou!
    Although I am getting a 502 Bad Gateway and Access Denied response at 43:12. Has anyone went through this?

  • @TheAkash58
    @TheAkash58 2 місяці тому

    If anyone using the latest version of keycloak while setting up the user make sure you are providing the firstame, lastname and email as well cause the existing version ends up throwing invalid grant type issue when accessing token endpoint. Also use lombok 1.18.30 when using JDK 21.

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

    This is great video. U have explained everything very well.

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

    Thanks, bro. This is probably the best video on the subject that I've come across recently. You're good at explaining things. I'd like to see another video on how to perform user registration through REST API and Keycloak.
    PS and, yeah, it would be great to watch a good video about OAuth and Spring Security REST API. I know you had something similar, but without the REST API."

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

      Glad you enjoyed it!
      I will provide such content ASAP

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

    I finally watched a video that really helped me! Thank you for that! I would like to know how to make it possible to use Keycloak in both the back-end (Java + Spring) and the front-end with React.👏👏👏👏

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

      Happy you liked it!
      I’m working on it

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

    Thanks for such great tutorial. It helps a lot to get basic understanding of keycloak

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

    How would you forgo if you had to store additional user info that keycloak does not support like for example user preferred language?

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

      Happy you liked it
      I will create another video to show this details

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

      @@BoualiAli that would be really helpful, thank you 😁

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

    thanks for providing github repo.. it works like a charm

  • @issabln759
    @issabln759 7 днів тому

    Now you did this all in one single spring app. How could i put all these settings into a seperate spring boot project and use it in multiple other spring boot projects to have a real microservice structure?

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

    Thanks sir for the nice explanation video on Keyclaok it was really helpful for me.

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

    The best spring boot teacher (Bouali Ali). I want to new video for Java Concurrency & Multithreading Complete Course

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

      Happy you liked it
      I will schedule such a video

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

    Really appreciate your video, amazing tutorial. Thank you!

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

    28:48 you must add /auth , otherwise 401

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

      in my case)))

  • @ahmedmk534
    @ahmedmk534 10 місяців тому

    thank you for the content. can you demonstrate how to automatically refresh the token once expired without having the user to login again (when microservice1 calls microservice2 for example) ?

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

    Thanks a lot for your video, it is easy to understand the concept through your video

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

    Amazing video, perfectly explained, very educational.
    Thank you so much for this! (a video on debug mode on IntelliJ would be great).

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

    Nice video. But can you please make a video on how to log out user and change the session time using keycloak & spring security

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

      Happy you liked it
      I will create another video more detailed

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

      @@BoualiAli Thanks. Eagerly waiting for it.

  • @dunayqudretli3382
    @dunayqudretli3382 9 місяців тому +2

    Great tutorial👏

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

      Glad you think so!

  • @user-di3gp7gb3w
    @user-di3gp7gb3w Рік тому

    안녕하세요
    알기 쉽고 꼼꼼하게 설명해주셔서 너무 감사합니다ㅜㅠ
    구독 할게요!

  • @ElmshornBoy
    @ElmshornBoy 4 місяці тому

    Hello, for newer Keycloak fill e-mail, first name and last name and then access token is returned to Postman.

  • @santhosha-z5x
    @santhosha-z5x 2 місяці тому

    help when i stop keycloak server and start again all my previous configurations got reset any help?

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

    One interesting tutorial would be one for interacting with keycloak using it's API's. For example creating users, updating passwords etc...

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

      I will cover this part in a separate video

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

      @@BoualiAli this sounds great. Can’t wait to see that video 🙂

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

    I love your videos, this was really helpful to understand keycloak, but i would love to see if its possible to make a controller that gets the user credentials and with those credentials to make the request to the keycloak for the authentication if you have any tip on this it would be helful. Thanks again for the hard work !

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

      Happy you liked it.
      if you need such functionality, you just need to invoke the same endpoint I used in postman and pass the required body with the correct values and you will get the token

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

      @@BoualiAli I tried that way and managed to make it work now i skipped the "/authentication" url so it can be accessed without Authorization header. And when i make a new request i pass the new token that i got from authentication to the request so Keycloak can make the check if the user is authenticated and has the right role to access the resources.
      Thanks again for help !

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

    a lot of libraries were deprecated so it was difficult changing from sb2 to 3 but your tutorial helped a lot,thanks

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

    Thanks a lot. your video is fantastic, everything was self-explanatory

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

    Thank you for this video. At 1:09:14, jwt() is deprecated, I simply used jwt(Customizer.withDefaults()) which works. However, jwtAuthenticationConverter() isn't working. I have been trying to find an alternative way to inform the security filter chain of the custom jwtAuthConverter.
    Please can you help with this.

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

      Hello Bouali. I found a way around it.
      In the security filter chain, this is how it appears
      http.oauth2ResourceServer(oAuth2ResourceServer -> oAuth2ResourceServer
      .jwt(jwtConfigurer -> jwtConfigurer.jwtAuthenticationConverter(jwtAuthConverter)));

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

      Nice work!

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

      Yes this is the way to fix it

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

      @@BoualiAli Thank You.

  • @AbrahamPeter-nr3cq
    @AbrahamPeter-nr3cq 7 місяців тому

    Hello @BoualiAli thank you for taking your time to provide such detail tutorial on keycloak. I'm having issue logging in my user on postman. I've followed your steps but I keep getting this response:
    `{
    "error": "invalid_grant",
    "error_description": "Account is not fully set up"
    }` I'd like your advice on this. Thank you.

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

      Your realm and client are missing configuration.
      Please follow carefully

    • @AbrahamPeter-nr3cq
      @AbrahamPeter-nr3cq 7 місяців тому

      Please disregard this. Apparently, it is required that I provide the user email address and full name.

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

    Very nice explanation
    We need custom temple with keycloak for login and try to use front end as a react and back end is an springboot
    Note: When we are hitting front end that should be redirect to keycloak login custom template if user validated then we need to redirect to springboot and Response send to front end
    Thanks in advance

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

    Hey thanks for the tutorial, I am new to this so have a few questions..
    1. Instead of appending Role in code can't we just do it in keycloak itself.
    2. Can we use some kind of pattern matching like antmatcher and assign roles for endpoints instead of using preauthorize on each endpoint?.. it might become repetitive as endpoints increase to double digits.

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

      Happy you liked it!
      1- yes it is possible but you need to configure your spring app to remove the prefix (ROLE_)
      2- yes you can do that, check the roles and permissions video and you will have a clearer picture how to implement it

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

    Another great spring tutorial!
    Is it possible to combine this one together with spring social login?
    Thanks!

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

      Happy you liked it
      I will provide a video about that too

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

      @@BoualiAli thanks 🙏

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

    Great Video. It really helped me while migrating things over. There are some upgrades missing in your github. Let me know if I can contribute anything and make it complient as per latest spring boot version.

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

    Thank you very much for this video. I was searching for a good tutorial for a long time, but most tutorials just throw some random code and config in your face, without any explanation. Mostly this does not really work and you have got no change to understand what you are doing and what is going wrong.
    This one is very different and I got a better understanding what is happening and I have got the feeling to start over by myself.

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

    Awaited one from you, thanks man, keep rocking 🎉❤❤

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

    Thank you so much!! Your video is really helpful!!

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

    thank you Ali for this amazing tutorial

  • @viniciusgallico5553
    @viniciusgallico5553 9 місяців тому

    excellent video, thank you for sharing!

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

      Happy to have you

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

    Thank you for the helpfull vdo. Please continue for user federation and store in db.
    Custom User Storage Provider

  • @yokenji7179
    @yokenji7179 4 місяці тому

    The check if the resouceId is null does not work the user can still access onsecured endpoint even when he is not authorized for this backend application

  • @janrubach3726
    @janrubach3726 9 місяців тому

    Great tutorial :D Thank You :D

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

    Hi, Great explanation
    Via spring boot security application need to add the user registration and authentication how to handle that?

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

      coming next week

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

    Thank you very much for this guide. The JWT Authentication converter is really tough but well explained! I'm looking for now to replicate / save keycloak users into my database.

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

      Why do you need to do that?

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

      @@BoualiAli Because I have some relations between entities like "UUID carOwner" into CarEntity (eg). And I add some business informations to my logged user. Do you think it's a bad practice?

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

      @@remylavergne6424 just save the user id from keycloak

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

    How can we test this security configuration setup? Maybe you can do a tutorial on unit testing the security chain.

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

    Hi Alibou, may I know if you planning to continue this tutorial, like authorization part and fine grain control on permission and stuff?

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

      Yes, I have it on my list

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

      ​@@BoualiAlii want to implement authorization for angular, but of course angular cannot set the authorization. it should be public access. but how to granularly define which path in angular, assosiiate with which permission in keycloak, and how to actually implement this?

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

    Thanks a lot Ali. It was a great tutorial as usual.👏

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

    @BoualiAli This is very good and well explained. But how to implement opaque token, is it even possible?

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

    thanks a lot Ali! This was very informative !

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

    Hello, great video tutorial, but could you explain how you can secure endpoints without using method level annotations? Thanks

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

      Check the Spring boot roles and pernmission video and you will have you answer there

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

    Thanks a lot for the helpful tutorial. Would be great if you can make a tutorial for KeyCloak integration with LDAP/Active Directory.

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

    Dear Alibou,
    I have question about JWT converter, how i can claim user attributes from user details in keycloak and i want use this claims for my controller or service? sorry for my grammar i still learning english. I hope you understand what i mean. Thank you Mr. Alibou great video

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

      Your english is good 👍.
      I already explained it in the token converter part

  • @ChinhNguyen-eg5km
    @ChinhNguyen-eg5km Рік тому

    please make more video about keycloak, tks for your helpful video

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

    Hi, thanks for the video! I have a question (maybe someone already found an answer): I tried to just create a new role ROLE_test_admin, and got 403, I guess it was because of principal, but why... What I'm trying to understand why we need to read "preferred_username" instead of "sub"?

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

      That's very strange, but the problem is not in principal "preferred_name" or "sub". "JwtAuthenticationConverter" simply doesn't get "resource_access....roles". It only checks
      Arrays.asList("scope", "scp");
      That's the reason... why...

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

      @@dmitriizheleznikov2949 try using hasRole rather than hasAuthority on the method.

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

    Nice tutorial, can you please go more into detail with keycloak so something like logout, double registration and so an. Amazing video!

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

      Happy you liked it!
      I will schedule one soon

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

    Hi, thank you for the great video. I learned a lot and now I know how to build my web service safely. Thanks a lot for that! However, I still have one question: how do I get good tests written for it now? I follow the "test first" approach and of course my tests pop and don't work anymore. It doesn't work at all, because a token is missing to call the API. Can you say something about this, share a link or make a video?

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

      You can mock the security context.
      Please share more details on our discord server

  • @manusoftar
    @manusoftar 7 місяців тому +1

    Now, the question is, how the heck you integrate it with the actual frontend??, I mean, I usually use SpringSecurity with JWT so what I do is I implement a service for the user to actually login which will return a minimal dataset about the user (like the name, the avatar, etc) and also the generated authentication Bearer token, so from ther on, the front end will have to attach that Bearer token to the header any time it wants to consume a service from my backend.
    Here I'm missing that last part, how does the frontend tell the backend it is authenticated?

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

      will be explained in the coming video

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

    Your explanation was amazing thanks

  • @ElmshornBoy
    @ElmshornBoy 4 місяці тому

    Works like a charme. :-)

  • @KrishnaPatel-qu6nh
    @KrishnaPatel-qu6nh Рік тому

    thank you for this amazing tutorial.can you please make a video for implementation of multi tenancy with Keycloyk?

  • @esrefcagataydogan8308
    @esrefcagataydogan8308 2 місяці тому

    Hi Ali, I am developing an application using Keycloak and Spring Boot. I have implemented OTP login and Google Sign-In, but there is an issue. If a user has previously logged in with OTP and then tries to log in with Google using the same email, I get a "user already exists" error (federated identity account exists). In this case, I want the accounts to be merged. In other words, the user should be able to log in using both OTP and Google Sign-In with the same email. Could you help me with this?

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

    Thank you for this video, but I would like to know how to create users linked to the application. For example, if the application includes a sign-up option, how do I link this registered user to Keycloak?

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

      You can enable the signup feature on keycloak

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

      @@BoualiAli Will the user be registered in my database as well?

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

      @@khouloudbouazizi280 no. You don't need to

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

      @@BoualiAli Sorry for asking a lot, but I need to register the user in the database because they are related to other JPA entities.

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

      @@khouloudbouazizi280 you can get the user ID from keycloak token

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

    Hi there, great content! Just a quick question is it correct to say principle or principal? As I think we are referring to the request initiator which in this case would be a principal, but we refer to it as principle. Is this a typo or that's how it is supposed to be? Keep up the good work :)

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

      Can you please remind me which part of the video 😅

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

      @@BoualiAli For example the field principleAttribute, shouldn’t that be principalAttribute? I don’t get what are you referring to when you say principle? Just needed to clarify this :)

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

    Great video but I have an error. Regarding jwt, I have a question. I have been following your instructions, but at the SecurityConfig phase, it tells that .jwt() has been deprecated. How do I approach this?

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

      I think you’re using 3.1
      Use 3.0 instead

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

      @@BoualiAli it works , thank you

  • @fab_81
    @fab_81 2 місяці тому

    How can i integrate this system with postgreSQL? i'm trying to do a spring + jwt + keycloak + postgres system for the users db.

  • @alandercarraro218
    @alandercarraro218 9 місяців тому

    Amazing video Bouali. One question: How could I register new users in frontend with keycloak using Angular with springboot? in my frontend in a login form, first I check if the credencials is ok, if it is ok, I return the token for user be able to make request, is it right? Thanks

  • @maalejmedamine
    @maalejmedamine 9 місяців тому

    thank you bro for this video , but i had problmes regarding some deprecated versions of security , can u help me please ?
    thanks in advance

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

    Is there any point on assigning client_admin role when we have already assigned the realm admin role with is a composite role associated with the client_admin? Shouldn't it be included in the realm admin role

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

    Congratulations, I wanted to use Keycloak to help me implement the project, I followed your steps and it's working, very good, now the question I have left is how I can validate the expiration of the jwt token, any ideas.

  • @nochicken4U
    @nochicken4U 9 місяців тому +1

    I am receiving this error:{
    "error": "invalid_grant",
    "error_description": "Account is not fully set up"
    }
    I have the same setup with you. I googled it and didnot solve this problem:(

    • @theameow
      @theameow 9 місяців тому +1

      u need to setup email, firstname and lastname to ur user at keycloak, this is the only way for works to me (sry for my eng)

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

      Thanks, it worked for me too

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

    mr and so and so forth thank you

  • @prasadrandika7158
    @prasadrandika7158 10 місяців тому

    Hi..! since we are adding client roles as underlying role to realm roles do we need to add client roles again for the user?

  • @ОлексійМоренець
    @ОлексійМоренець 5 місяців тому

    Is there a way to generate token without knowing that magic url? How did you know the url? Is there any documentation about this?

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

    Hello,
    Your tutorial is very good.
    Can you make a tutorial in which, in addition to Keycloak 21 and Spring Boot 3, Angular 16 is also integrated?
    There are few tutorials that integrate Keycloak, Spring Boot and Angular, and if there are, they are old because Keycloak has changed a lot in the meantime and many things are no longer the same.
    Thank you!

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

      Happy you liked it
      I'm working on a full angular video and it will be released soon.
      After that I will create another one for keycloak integration with Angular too

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

      @@BoualiAli Thank you!
      I am a fan of Angular and Spring Boot ❤

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

      @@BoualiAli i will wait that

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

      @@BoualiAli yes that is so awesome. Thank you.

  • @abu-dukhan
    @abu-dukhan Рік тому

    Thank you for this awesome content.
    Pls can you make a video for multiple implementation of UserDetaisService, so that the system can use multiple table for authenticating user depending on the Login endpoint. Thank you

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

      Happy you liked it
      The question that you really need to ask: why you have such system design?
      I guess you need to review you database design and group all the users in one table.
      Please provide more details and I will try to answer and assist you

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

    Hi, Thanks for the video. I would like to point out something about the role settings. Perhaps you need to make it a bit clearer that point. It seems we are defining users for the REALM. We can define Roles for a Realm as well. So any user that is defined under a particular realm can be associated with any role that is created within the same realm. For global permissions roles such as ADMIN, USER, MANAGER etc, may be handled by this realm role definition. Probably for fine-grain authorization within a client, we may need extra role definitions under a particular client such as USER(read but not write), ADMIN(data posting, updating etc).

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

      Sure, I will make that clear in the next video

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

    I was going through a Udemy course, and the Keycloak screens there were too old, the new version of UI is very different. Thankfully I landed on this video. It helped me a lot. Thanks.

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

    Hi Bouali, frist of all thank you for the video! I have to implement a similar project trough keycloak. I' using java 21 and spring boot 3.2.0, and I have to use a JWT bearer instead of a Bearer Token. Is it possibile? It's good idea using this application such base for trying to update my project?

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

    great tutorial very elaborate and informative.

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

    If I create a role with "ROLE_user" as the role for the user then I don't have to worry about the 403 forbidden error and also I don't have to write the extra configuration for it ? to modify the roles from "user" to "ROLE_user" ?

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

    Great video, it's really helpful that developers like you are putting hardcore efforts to share their knowledge.

  • @hendisantika
    @hendisantika 2 місяці тому

    Can You upload the Realm file to be imported? I tried the sample but still 403

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

    I made a keycloak-spring-angular application using keycloak 18, I had to use the admin client to make the spring backend function as a middleware, because you can make a user in the keycloak window, but it would make a user by standard with the default-user profile, and you can assign a role to that group, but I had no idea how to differentiate between the users without using that middleware. Is there a way to do that? And using spring as middleware, makes it so you don't have to rewrite the custom keycloak registration page or start sending attributes with the jwt

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

      Can you please explain more. I really didn't get the issue

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

      @@BoualiAli so when making a user, using the default login page in keycloak, it automatically uses the default_group to register a user, à group to which you can assign the role Member for example, but I could not figure out how to give someone the role Mentor for example, because it defaults to default_group on the register page, that's why I had to use my Spring Backend as Middleware, making a rest call to the keycloak server and filtering through the realm roles to pick the right one, so my question is, can you differentiate between groups / users on the default keycloak registration page?

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

    well explained video ❤
    Could you please make a video where we are implementing social login and own jwt authentication in a single spring boot application.

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

      Happy you liked it
      I will make one soon

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

      @@BoualiAli Thank you
      and I also requested you to make a video where linkedin and twitter is act as a social media platform for oauth2 login instead of google and github with spring boot

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

      @@souravpaul6086 I’m preparing a video for that

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

      @@BoualiAli I am excited to learn that topic with your awesome explanation ❤️

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

    Hi Ali, first of all I want to thank you for this very detailed and well-explained guide, it really helped me have a clearer idea on how keycloak integration works in spring boot,
    but I really want to ask for help on this minor problem,
    i'm still getting 403 forbidden when even after adding the role

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

      Please follow the steps precisely and assign the roles to the user

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

    Hi, thanks for your video! I have a question about the flow of a real application. Does my frontend connect directly to Keycloak for authentication, or does it go through my backend, which then connects to Keycloak for authentication?