Secure your REST APIs with Spring Security & Symmetric Key Encryption

แชร์
ฝัง
  • เผยแพร่เมื่อ 6 ก.ย. 2024
  • In this video, we will be discussing the process of securing your REST APIs using Spring Security JWT and Symmetric Encryption. JWT (JSON Web Token) is a standard for creating secure access tokens that can be used to authenticate and authorize users, while symmetric encryption is a method of encrypting data using a secret key. We will be showing how to use these technologies in combination with Spring Security to create a secure and efficient authentication and authorization system for your REST APIs. This video is ideal for developers who are looking to secure their REST APIs and want to learn more about JWT and symmetric encryption.
    🔗Resources & Links mentioned in this video:
    Github Repository: github.com/dan...
    Previous JWT Tutorial: www.danvega.de...
    👋🏻Connect with me:
    Website: www.danvega.dev
    Twitter: / therealdanvega
    Github: github.com/dan...
    LinkedIn: / danvega
    Newsletter: www.danvega.de...
    SUBSCRIBE TO MY CHANNEL: bit.ly/2re4GH0 ❤️

ความคิดเห็น • 31

  • @pedjango
    @pedjango ปีที่แล้ว +9

    Absolutely in love with this Spring Security series. It would be awesome to expand these lessons with the utilization of refresh tokens.

  • @famoniri
    @famoniri ปีที่แล้ว +9

    Hi Dan, thank you for your useful video. In the "SecurityConfig" class, the `jwt()` method in `OAuth2ResourceServerConfigurer` has been deprecated since version 6.1. To resolve this, I used the `.oauth2ResourceServer(oauth2 -> oauth2.jwt(Customizer.withDefaults()))` configuration and it worked for me.

    • @EasyGist
      @EasyGist 7 หลายเดือนก่อน

      Thanks buddy! It helped.

  • @pejko89
    @pejko89 ปีที่แล้ว +1

    Great timing! Just got instructions from my mentor to learn about JWT tomorrow, and implement it in my project! Thank you!

  • @minilord11
    @minilord11 ปีที่แล้ว +1

    A followup video about refresh token would be awesome.

  • @jackla84
    @jackla84 ปีที่แล้ว +1

    Great tutorial. Could you expand on this topic and demonstrate how to implement logout functionality and refresh tokens?

  • @AleksandarT10
    @AleksandarT10 ปีที่แล้ว +1

    Great video, this is what we needed.
    It would be great if you can build on top of this one so UsernamePasswordAuthenticationFilter is used along with PostgresDB!

  • @markostrisko2370
    @markostrisko2370 11 หลายเดือนก่อน +3

    Hi Dan, great video as always.
    I have one question though.
    At 17:00, when creating a @Bean for JwtDecoder, in SecretKeySpec constructor, you are setting "RSA" as alghoritm.
    Correct me if I'm wrong, but isn't that an asymmetric key encription?
    Shouldn't we pass something like HmacSHA512?
    Thanks in advance

  • @alexandroslekkas
    @alexandroslekkas 6 หลายเดือนก่อน

    Very cool, thank you!

  • @javohirsayfullayevich7127
    @javohirsayfullayevich7127 ปีที่แล้ว

    Well done, Thanks Dan

  • @void_star_void
    @void_star_void ปีที่แล้ว +4

    Nicely done, may I know your IDE theme?

    • @devforlife5696
      @devforlife5696 ปีที่แล้ว

      He's using new beta layout in appearence. Enable beta will give new appearence to IDE just like this. Wanna know his theme also ;)

  • @sergiopuccini
    @sergiopuccini ปีที่แล้ว +1

    Thanks for video! But how to refresh key?

  • @ram0973
    @ram0973 ปีที่แล้ว

    Nice shirt. And lesson of course 👍

  • @shahinit
    @shahinit 8 หลายเดือนก่อน

    Thanks

  • @joachimdietl6737
    @joachimdietl6737 11 หลายเดือนก่อน

    Nice video!

  • @anuragreddy9177
    @anuragreddy9177 ปีที่แล้ว

    Could you please make a video on common exception library for Spring Webflux projects

  • @derBobby2
    @derBobby2 ปีที่แล้ว

    What is the advantage of the JWT over just using basic auth here if both endpoints are in the same application?

  • @blacky8986
    @blacky8986 4 หลายเดือนก่อน

    And how to use the symmetric key If i have auth server and resource server in one app :) ?

  • @ayushjaiswal4449
    @ayushjaiswal4449 10 หลายเดือนก่อน

    In the given implementation we are using basic login where credential is supplied using authorize header but if we want to do so by using a rest end point how can I do that, anyone please guide.

  • @mrowox
    @mrowox ปีที่แล้ว +3

    Thank you so much for this short and concise tutorial Dan. However, I encountered an error while following along with the tutorial. I get an error when I try to encode with HS512 algorithm. HS256 works fine. The error is below
    [Request processing failed: org.springframework.security.oauth2.jwt.JwtEncodingException: An error occurred while attempting to encode the Jwt: Failed to sign the JWT -> The HS512 algorithm is not allowed or supported by the JWS signer: Supported algorithms: [HS256]] with root cause
    com.nimbusds.jose.JOSEException: The HS512 algorithm is not allowed or supported by the JWS signer: Supported algorithms: [HS256]

    • @hschaeufler
      @hschaeufler ปีที่แล้ว +1

      Had the same issue. Your key is probably not long enough.

    • @mrowox
      @mrowox ปีที่แล้ว +1

      Wow thanks for pointing that out

    • @balaji3229
      @balaji3229 ปีที่แล้ว

      @@hschaeufler How do we generate the correct key?

    • @alexgutjahr
      @alexgutjahr หลายเดือนก่อน +1

      Probably longer than needed, but with the openssl utility you can do the following
      openssl rand -base64 64

  • @AwkwardFX
    @AwkwardFX ปีที่แล้ว

    Hey Dan, what is securityMatcher? How is that different from requestMatcher?

  • @mlensment
    @mlensment ปีที่แล้ว

    Nicely done, Dan! Can you do a tutorial about oauth2Client + JWT?

  • @ilyatemnikov9624
    @ilyatemnikov9624 ปีที่แล้ว

    Hi Dan! (sorry for my bad English). I have watched carefully some of your videos about security, there is one small problem: when restarting the application all the tokens previously issued become invalid. I will be very glad and grateful if you tell me how to solve this problem or make a video like "jwt for production"! I am immensely grateful for your channel, thank you!

    • @nb-th7kr
      @nb-th7kr ปีที่แล้ว

      you would probably need to store your active tokens in a persistent data storage

  • @wagnerfaria1601
    @wagnerfaria1601 ปีที่แล้ว

    How would you write a refresh token method for that application?

  • @doh2535
    @doh2535 ปีที่แล้ว

    What's going on with ur teeth? Why are they so white?))