Secure your REST APIs with Spring Security & Symmetric Key Encryption

Поделиться
HTML-код
  • Опубликовано: 18 янв 2023
  • 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/danvega/jwt-symmet...
    Previous JWT Tutorial: www.danvega.dev/blog/2022/09/...
    👋🏻Connect with me:
    Website: www.danvega.dev
    Twitter: / therealdanvega
    Github: github.com/danvega
    LinkedIn: / danvega
    Newsletter: www.danvega.dev/newsletter
    SUBSCRIBE TO MY CHANNEL: bit.ly/2re4GH0 ❤️
  • НаукаНаука

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

  • @pedjango8848
    @pedjango8848 Год назад +8

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

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

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

  • @famoniri
    @famoniri 10 месяцев назад +8

    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 5 месяцев назад

      Thanks buddy! It helped.

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

    Well done, Thanks Dan

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

    Very cool, thank you!

  • @minilord11
    @minilord11 9 месяцев назад +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!

  • @joachimdietl6737
    @joachimdietl6737 8 месяцев назад

    Nice video!

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

    Nice shirt. And lesson of course 👍

  • @shahinit
    @shahinit 6 месяцев назад

    Thanks

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

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

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

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

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

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

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

    Thanks for video! But how to refresh key?

  • @markostrisko2370
    @markostrisko2370 9 месяцев назад +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

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

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

  • @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 ;)

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

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

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

    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.

  • @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

  • @blacky8986
    @blacky8986 Месяц назад

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

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

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

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

    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?