Spring boot 3 & Spring security 6 - Roles and Permissions Based Authorization Explained!

Поділитися
Вставка
  • Опубліковано 23 лип 2024
  • Buy me a coffee: ko-fi.com/boualiali 🔐 Unlock the power of Spring Security and take your application's security to the next level! In this comprehensive tutorial, we dive deep into roles and permissions-based authorization using Spring Boot 3 and Spring Security 6. Whether you're a beginner or an experienced developer, this video has everything you need to level up your security game!
    🎁 Spring Data JPA course: aliboucoding.com/p/the-full-g...
    🎁 🚀 COUPON Code: EARLYBIRD20
    Don't Forget to
    ===========================================
    💯 Free courses here: aliboucoding.com/courses
    💯 Subscribe to the youtube channel
    💯 Join our Discord Community - / discord
    💯 Join our Facebook Group - / 589612651142975
    💯 Join our Instagram: / alibou_coding
    00:00 Introduction to Spring Security
    01:29 Understanding Roles and Permissions
    03:50 Add Admin and Manager resources (Endpoints)
    06:46 Create roles and permissions
    16:38 Configuration-based Authorization using Request Matchers
    22:08 Insert users at application startup
    26:11 Test the configuration based Authorization
    32:12 Annotation-based Authorization using @PreAuthorize
    37:09 Test the annotation based Authorization
    38:39 Choose the right authorization approach for your use case
    42:29 Outro
    By the end of this tutorial, you'll be able to:
    ✅ Implement role-based and permissions-based authorization in your Spring Boot applications.
    ✅ Choose the right authorization approach for your use case.
    ✅ Secure your application using annotations and configuration-based authorization.
    ✅ Create custom permission evaluators and leverage Spring Expression Language (SpEL) for complex security rules.
    📚 Resources and Code Examples:
    Spring Security Documentation: spring.io/projects/spring-sec...
    Github Repository with Code Examples: github.com/ali-bouali/spring-...
    Don't forget to 👍 like, 💬 comment, and 🔔 subscribe to stay updated with the latest content on Spring Boot and Java development!
    🔎 Tags:
    #SpringSecurity #SpringBoot #RolesAndPermissions #Authorization #Java #SpringFramework #WebDevelopment #Tutorial #microservices #microservicestutorial #springframework
    #cicd #spring #learning #springboot #springtutorial #springsecurity #developpement #java #aliboucoding #alibou #springboot_3

КОМЕНТАРІ • 271

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

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

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

    I have been waiting for this video for a long time. Thank you ❤

  • @KhalilChargui-jm1fj
    @KhalilChargui-jm1fj 4 місяці тому +1

    Thank you so much, you are making the life easier.

  • @igris4303
    @igris4303 13 днів тому

    You have the outstanding tutorials, çok teşekkür ederim kardeşim

  • @maryamalsulaiman3321
    @maryamalsulaiman3321 Рік тому +18

    After watching a lot of videos, I can say you are the best one who explains it very smoothly and clearly 🤩 Thank you Alibou for your hard efforts 🙏

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

      thank you so much for the nice comment. really appreciate that

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

      ​@@BoualiAli Hi bouali, I have a question. I am currently working on a project that requires to store the roles and permissions in a database. In this case, how can we apply and use the stored permissions in the database to authorize the actions? 🤔

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

      I also have the similar requirement. Guide me on how this was implemented if already done.

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

    congratulations, your videos are much more informative than many courses, a hug from brazil

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

      Thank you 🙏
      Really appreciate that

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

    Thanks for this video Ali. A master class as always ❤‍🔥❤‍🔥❤‍🔥

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

    Jus occupied with some school work but once done I will follow. I love your content bro. God bless you

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

      Really to have you with us. I will keep posting more and more content.
      A lot is coming in different areas not only spring

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

    One of the best tutorials out there!!

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

    Great video. U help me alot

  • @user-wg5yw8tw7s
    @user-wg5yw8tw7s 7 місяців тому

    Great tutorial, thanks very much. I was just searched role and permission based security

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

    Maasha Allah, Wollah I'm just so so happy that I don't even know what to say.
    Thank you so much Alibou, this is exactly one of the things I wa thinking to add to my app and Boom 💥 here is it.
    Waiting for the Swagger docs 😁
    Thank you so so much, JazaakAllahu khairan ❤

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

      Swagger docs is published now 😁
      Perfect timing

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

    thanks a lot Ali ! This was very helpful

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

    thank you so much Alibou I learned a lot you are the best

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

    Really apreciate it! Super well explained.

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

    I LOVE YOU! THX for the video

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

    THANK YOU SO MUCH I VE SEEN YOU !! U R GREAT

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

      You are so welcome!

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

    Great tutorial as usual!

  • @user-jg5xy8yw6j
    @user-jg5xy8yw6j 4 місяці тому

    This content is amazing Sr. Thanks.

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

      Glad you enjoy it!

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

    another awesome helpful video 💪

  • @ukaszkiepas57
    @ukaszkiepas57 15 днів тому

    thank you mate

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

    Learned lot of things. Thanks a lot

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

      Glad to hear that!

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

    great video thank you so much

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

      Happy you liked it!

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

    T'es vraiment trop trop fort, c'est incroyable

  • @anurag-sachan
    @anurag-sachan Рік тому

    Great Job Brother, Tried watching different videos to get better understanding, but yours was too good. Also, Your debugging part was impressive, consider making a video on it too.

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

      Already published a video on debugging.
      Go check it in my channel

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

    You're the best!

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

    Thank you Alibou for amazing contents! Please make a video about "Auditing entities in Spring boot".

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

      Sure, great Idea

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

    Great video and explanation. Personally i prefer the PreAuthorize annotation on methods - to have a grainer control for the endpoints. But as Ali mentioned - it depends on what you want to achieve and how it works for you.

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

    You are the best man

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

      Thank you my friend

  • @sandun4983
    @sandun4983 4 дні тому

    very good.

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

    The best, Thanks

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

    Сподобалося відео! Дякую

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

      My pleasure. thank you so much for you feedback
      (I use translations to understand it lol)

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

    better clearance and better understanding, thx

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

    Great video, great content.Kindly next time we can make the roles and permissions configurable so that different actions can be assigned to different roles via an endpoint for scalability.

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

      I will note that for the coming video

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

      @@BoualiAli I appreciate.Good stuff man.

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

    It would be great if you could make a video on how to debug. Your explanations and your code are the best. Thanks for making Spring understandable!!

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

      I will create one ASAP

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

      I really need that

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

      @@Ikhideifidon the video is already published.
      Enable the notifications so you won’t miss any new video

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

    Thank you very much sir Ali ♥️, could you make us a video on the front-end using angular🙏.

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

      Really happy you liked it
      Already working on it

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

    Awesome video I really appreciate you ,
    can make video how to create dynamic role and permission which admin user can change it anytime for any endpoint dynamically

  • @user-yq4pv1md3p
    @user-yq4pv1md3p 3 місяці тому

    Thank you for the video
    I think the main concept here is that a role is a container for permissions

  • @user-mo9du4bm5w
    @user-mo9du4bm5w 3 місяці тому

    Great video! Could you also make a small video on the intellij shortcuts to cut down our development time like the one you used to replace the word on multiple lines at a single time?

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

      I will create a short for that (reel)

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

    Thanks for your videos, you provide AWESOME content in great depth. IF you can also do project based videos like e-commerce,learning management system, content management system so that we get a full scope to how to do projects,Thanks again

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

      I'm already working on a new course.

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

      @@BoualiAli A simple User Management System will be perfect! :)

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

    Great video, thanks for that and for the rest of your Spring tutorial.
    Would be great if you can combine this Roles and Permissions Based Authorization together with Oauth2 and show how the provider (i.e. google) goes together with user, roles and permissions entities.

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

      I’m already preparing a video about keycloack that will cover all that

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

      @@BoualiAli thanks!
      keycloack sounds great, you mean it will also allow Oauth2?

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

      @@devozs yes

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

      @@BoualiAli man, I was searching a video like this, and I just read this comment! With the quality of your content the wait will be worth it!

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

      @@belerante4595 you will absolutely like the content

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

    I love your video

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

    like, brb later. Who is the man? You are the man

  • @SteveT-tg4eb
    @SteveT-tg4eb 4 місяці тому +2

    what if the role needs to be dynamic meaning not only tied to ADMIN, MANAGER ? is there a good way to handle it?

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

    Awesome

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

      Glad you think so!

  • @ajaybiswal1
    @ajaybiswal1 27 днів тому

    Nice Video. In the video u mentioned about earlier video about User. Can u pls provide the link for the same

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

    Hello, and thank you for the excellent course and quality content on your channel.
    I've been following the series for a while, making some adjustments to fit my directory structure and architecture, but nothing significant. However, I'm encountering a problem where, regardless of the role I use, I get a 403 error when accessing the DemoController. The roles and permissions code is identical (I made sure to copy and paste your code from the repository), yet the issue persists. The console output correctly identifies the user role and details, but the 403 forbidden error persists.
    Did I overlook something? Perhaps I missed a detail or misunderstood a part of the instructions. What steps can I take to debug this issue? Many thanks in advance.
    P.S.: I apologize if my English isn't perfect; it's not my native language.Hello,

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

    Thanks for the video. I am interested in a video about debugging.

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

    Finally!!

  • @user-kv6bl8ct9g
    @user-kv6bl8ct9g Місяць тому

    What design pattern would you suggest to use to overlay this program?

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

    Thank you for uploading such important educational video.. sir please upload Oauth 2.0 complete course, how can manage resource URL to Authorised for different particular user(role-base Authorization using OAuth2). And your all videos are deserving to get five star feedback.

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

    @Boulaali Ali ---- Can we handle roles or add new roles to system/app from db or file etc.. dynamically may be from UI etc. with our restarting application in Spring Boot. And also needs to apply these ne roles and permissions on ui pages as well with easy. Please consider PhpRad application where we Can define roles to existing pages from UI

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

    Awesome as always.... Debugging Video please

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

      Already published.
      Enable the notifications for next times

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

    great

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

    COUPON Code: *EARLYBIRD20* => Spring Data J PA course: aliboucoding.com/p/the-full-guide-to-master-spring-boot-data-jpa

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

    yeahh thank youu 🤓🤓🤓

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

    Hey, first and foremost, I want to express my gratitude for your time and the incredible effort you put into creating quality content for us. Your tutorials have been immensely helpful in my learning journey. I am currently working on a project where I would like to incorporate JWT (JSON Web Tokens) into my Spring Boot/Angular application. After conducting extensive research on the subject, I couldn't find anything that clarifies the concept and its implementation better than your videos.
    If possible, I kindly request if you could expedite the creation of a tutorial that demonstrates the integration of JWT in both the backend (Spring Boot) and the frontend (Angular). I truly value your expertise, and having your guidance in this particular area would be invaluable to me. I understand if this request might be challenging or time-consuming, so please let me know if it is feasible within a reasonable timeframe.
    Lastly, I would like to mention how much I appreciate your channel and the valuable insights you consistently provide. Your tutorials have been instrumental in deepening my understanding of various concepts, and I truly admire your teaching style. Thank you once again for your dedication and contribution to the learning community.

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

      I really appreciate your comment and how motivating it is.
      I'm already working on an angular course that should be released soon. I will cover almost everything in it

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

      @@BoualiAli thank u sir , we are impatiently waiting.
      Thanks for ur time once again

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

    Great video. Have developed a video on Debugging on Intelij IDEA?

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

    Thanks for this awesome tutorial, please when are you doing the tutorial on debugging as you said in the video using Intellij, thanks.

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

      Already published sometime ago.
      Enable the notifications, I'm always saying that so you don't miss any videos

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

      @@BoualiAli Thanks much

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

    Hi Ali, Great tutorial. I was wondering, if I wanted to implement a situation where the manager can grant or revoke permissions to admins i.e have a table of permissions mapped to a user(admin) and the manager can add and remove permission to different resources from the admins permission list. How do I go about this instead of hardcoding the resources that all admins should be able to access. Thanks again for this lesson.

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

      You can store them in a database or use OAuth2 instead and it will handle everything for you

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

    can we implement authorisation at the Gateway level? this will reduce changing a lot of code in the application in the downstream of Gateway.

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

    Thank you so much for this great content! I have a question I would like to ask: I am developing a project in microservice architecture and I have 3 independent services in different repos. My system also has discovery server and API gateway in separate repos. I want to apply role-based auth to services with jwt. I implemented jwt to API Gateway, but I want to control these requests on a role-based basis, just like in the video. If I do the same implementation as you did in your video to the api gateway, can I achieve role-based auth using only @PreAuthorize("hasRole('ADMIN')") or @PreAuthorize("hasAuthority('admin:create')") annotations in the other 3 services? ?

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

      Happy you liked it
      yes you can achieve this in the same way you described

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

    Thanks so much, boss, I'm a bit skeptical about what and while we need to seperate authority i.e (admin:create, admin:delete etc.) , are you saying if i use (admin:create) on all the endpoint(methods), i will not be able to access the resources? Like. Thnaks

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

      it always depends on you needs and business rules

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

    hello alibu and congratulations for the perfect job. I build a rest api and i have an entity called event. I use command objects for response and i am wondering how i can implement the authorities because for example in a Get ~/event/ request if user is admin I need to return adminEventCommandObject if use is HR i need to return hREventCommandObject etc.

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

      Can you please post in the discord server?

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

    Thank Sir, Plz include with the jwt Exception too

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

      Check the exception handling video. it wil help you

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

    Great tutorial, We need intellij debugging video with your secret tips ❤😍🔥

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

      Already done.
      Subscribe and enable the notification so you won't miss any new video

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

      already done 🤩 thank you again ❤️

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

    Would love to see user management and authentication with Keycloak

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

      Already preparing the content

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

    hey I have a small doubt , say I have admin with create and read only permission so how can i implement this coustomization of premission

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

      Just create the role and assign the required permissions to it as explained

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

    I am having a hard time to follow your video. Which order I should watch the video of Spring security series ?

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

    Hello~ thank you for sharing your tutorial! I appreciate it!. I just followed your code in spring security. I just have a problem which are not allowed different kind of users for login. I have no idea why.

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

      Can you explain a bit more please?

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

    Very nice and clear video. I also wanted to ask is it common in java that the permissions are hard coded and not stored in db for an example. I see many people doing this approach, but didn't come across any that used db to store user permissions.

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

      Yes if you have already all the scopes predefined. Otherwise it can be stored into a database to make more dynamic and scalable.
      I will try to make a video explaining that

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

      @@BoualiAli that would be amazing to see, hopefully we can see that video coming to light.

  • @julesruzindana-rukundo6254
    @julesruzindana-rukundo6254 11 місяців тому

    Hello sir! is it possible to store files/folders (server) in a multiuser app
    so that only users with certain roles or only the owner can access it
    read/modify after. How to do this in springboot. A similar project would help me but I
    can't find any on github. Can you help me?

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

      Yes it is possible.
      You need to perform the check and secure the endpoint for the authorized users

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

    Great content.
    Please make a video on debug in intelliJ.
    Thanks

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

    Thank you, one of the best tutorial on Permissions and Roles I have ever seen. Please create a new tutorial about how to implement granularity and hierarchy of each role. Let's say I have list of 1000 companies from 100 countries, I would like an user responsible for updating ONLY companies from Germany, while other ONLY from USA, and UK . How would you do it? Would you create 100 Permissions? for each country?

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

    I just found GOLD..........Thank you for this @BoualiAli

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

    It was a very helpful video. One thing I wanna ask is that if we have two different entities lets say buyer and seller which have there own controllers and repositories then how will we be managing their repositories in ApplicationConfig. Thanks and waiting for a reply

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

      Can you please explain a bit more, I didn't get the topic

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

    In this particular use case when I am already using role do I need add permissions anymore? Is it not redundant?

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

      check my github account

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

    Many thanks for this!
    Just one thing puzzles me, why do you include ADMIN_* permissions in hasAnyAuthority of requestMatchers(*, "/management"), wouldn't it work already if you just included MANAGER_*?
    I think you defined the admin role as containing all the manager permissions, wouldn't that be sufficient already?

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

      thank you.
      I need to double check the code. I forgot honestly

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

    Great video as it explains Authorisation in more details. I am having an issue when I am trying to add a new role after the data has been loaded to MySQL DB. So if I create a new role "READ_ONLY" , and add that role during service call, I get 403 Error with message that "Data truncated for column 'role' at row 1". Now if I use "ddl-auto=create-drop", then it will work because this will always pre-populate the Role values from scratch but if I am using "ddl-auto=update", and add new Role like mentioned above, I will get the above error. Not sure if this is happening with MySQL only.

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

      One walkthrough is to add a new value like "READ_ONLY" to the columns directly in the database. But that won't be good practice for Production DB.

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

      Check the data compatibility: type, length,...

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

    hello Bouali, i want to ask how can i implement an option for deleting an account and that the user that created an account can delete his own account.

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

      you need to implement the logic to do that

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

    Hey, could you do a video about this jwt and add angular please.

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

    @BoualiAli
    How can I save and get the role, permission and resource from database?

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

      Just create entities for them and add the relations

    • @anjanx44
      @anjanx44 11 місяців тому +1

      @@BoualiAli checking, will update soon.

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

    What the differences between role and permission? and can I use role only to meet the authorization requirement ?

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

      they are almost the same.
      Permission and more granular comparing to roles.
      Roles are global, meanwhile permissions are specific to user actions (who can do what)
      You can use only roles to meet the auth requirements

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

    I hope this message finds you in good health. I would like to express my deep appreciation for discovering your channel, and I am truly grateful for the valuable content you provide. Your work has been immensely helpful to me. I do have a question that I would like to pose.
    As a novice in the field of Spring Security, I am wondering if it would be beneficial for me to watch your previous video titled "Spring Boot 3.0 - Secure your API with JWT Token [2023]" as a starting point. Is this video considered a foundational resource that would aid in better comprehension before proceeding further?
    Thank you for your continuous efforts, and I eagerly anticipate your response.

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

      I really appreciate your comment and feedback and I'm always happy to help.
      the answer is yes, start with that video, the the logout video, after that the refresh token video and finally this one.
      I will post a video combining all the security tutorials I created so you can have a full one

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

      @@BoualiAli thank you for your answer , this is what I'm currently doing.
      thank you for your help again and for your time
      .

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

    How can we utilize this microservice with Spring Cloud Gateway and share user details and user authorization among other microservices?

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

      Nothing special, just implement it on the API Gateway level

  • @user-iy7fo8bg5f
    @user-iy7fo8bg5f 8 місяців тому

    please make a video handle the security exceptions. cause the right resource pretty much missing on the internet

  • @user-dn9gf7il9e
    @user-dn9gf7il9e 10 місяців тому

    very nice tutorial, but I have a doubt that how to give permissions dynamically like if a new user added to the system then how to give roles and permissions to that user?
    if any one know please let me know ):

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

      I will make a video for that too, soon

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

    Salam alibou merci bc dieu te protege inchaallah
    S il te plait j ai un petite question
    J ai implémenté la sécurité sur un projet j ai récupéré ton code mais j ai un souci
    Le problème moi j utilise une entité role (relation many to many ) et pour les privilèges j utilise une entité (many to many avec rôles)
    Quand je cree un user dans le token generer je ne vois pas les rôles et les authoritie
    Je voudrai savoir à quel moment je dois m intervenir pour résoudre se problème
    Lah yarham waldik

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

      dans le UserDetailsService tu dois rendre la methode @Transactional et puis to fais un mapping dans la classe User -> getAuthorities

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

    Hello! I attempted to follow your instructions and had some success. However, when I tried to use the @PreAuthorize annotation in either the admin or management controller, I consistently received a 403 error (the previous requestMatchers worked fine)

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

      Did you add the annotation to enable the @PreAuthorize?

    • @giaphu623
      @giaphu623 11 місяців тому +1

      @BoualiAli, my bad. I forgot to enable the method. Thank you very much!

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

    Can you explain to us how to make a many to many relationship (many users has many roles)?

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

      Check the spring data jpa playlist

  • @user-zi4jy7gp4q
    @user-zi4jy7gp4q 11 місяців тому

    in 9:28 what is the shortcut that did u use ?

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

      All the shortcuts that I use are displayed in the green popup

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

    Is there a way to handle permissions in keycloak?

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

      Yes, check the keycloack video

  • @werghiaziz2943
    @werghiaziz2943 3 місяці тому +1

    why the user or admin , when he registre give him token ?

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

      I just wanted to speed up things.
      check the latest video, it up to date and better implemented

  • @user-er9pc2or6b
    @user-er9pc2or6b 8 місяців тому

    Nice video, but How to use this service for multiple microservices. to provide authentication as per role.

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

      Implement it on the gateway

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

      ​@@BoualiAli if possible pls make video on that..

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

    If you face this error -> Access denied and loop error issue,
    after creating get user request/update user.
    Watch Bouali's video titled 'How To Fix Infinite Recursion Loop in Spring Boot'.
    Thanks, Bouali.

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

      thanks for sharing

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

    Authorize using azure ad ... Manage permissions in local database

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

    Is the generated token for each roles changes every time?

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

    DEBUG FOR INTELLIJ 🙏

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

      Already published

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

    Please add video on debugging

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

    Question
    In your video 42:10min above of AdminController class you used @PreAuthorize("hasRole('ADMIN')")
    Now you deploy your code it works fine but In database I added another role called "SUPER_ADMIN"
    And want to apply in the AdminController then is it possible to achieve without deploying the app with the value like
    This @PreAuthorize("hasRoles('ADMIN, SUPER_ADMIN')") hardcoded with controller
    1. I don't want to deploy I will assign any ROLE to ANY USER using UI click it will save database
    2. I don't what to use @PreAuthorize as hard coded without using @PreAuthorize I will check api URL and check user
    has permission to access that in each request.
    How I may achieve that any IDEA
    Moreover I found ROLE in spring security is simple STRING it don't allow any custom object as my own defined
    It's a huge obstacle to build custom security

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

      If you add a new role to your application ==> this means that you have new requirements / logic. So it makes sens change the code, write tests, ....

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

      ​@@BoualiAli Thanks for the reply brother ... it's not always true that (If you add a new role to your application ==> this means that you have new requirements / logic) but for now I agree to with you but I don't to hard code like this { @PreAuthorize("hasRole('ADMIN')") } it will apply on fly I mean run time when request enters in the method. on the other hand spring security role only takes string and all it's implementation it's another barrier to customise it smoothly. By the way Thanks you and Take Care bro