Spring Boot Secret Properties: How to store secrets in your Configuration Properties

Sdílet
Vložit
  • čas přidán 13. 03. 2022
  • In this tutorial, you will learn how to use Spring Boot secret properties in your next application. When you define your own configuration properties you need to find a way to set secret properties. You can do this through command-line arguments or environment variables, but I often forget that they are there.
    Spring Boot 2.4 gave us the ability to import additional configuration files. In this demo, you will set the secret values in a file called secret.properties and ignore it from Git, so it doesn't get checked in. To wrap this up I will show you how to deploy this project to Heroku and override those secret properties using config vars.
    🔗Resources & Links mentioned in this video:
    Github Repo: github.com/danvega/spring-boo...
    👋🏻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 ❤️
  • Věda a technologie

Komentáře • 47

  • @prethammuthappabs2241

    Super helpful, thanks for showing the production method, cleared all my doubts ❤

  • @ILyaCyclone
    @ILyaCyclone Před 2 lety +31

    Be aware that unless you take certain steps, if you build your archive from IDE your secrets.yml file will be packaged in the final application archive.

    • @karolbielen2090
      @karolbielen2090 Před rokem +1

      thank you so much for this comment, there is a huge chance I wouldn't notice if not for your comment

    • @apexyu164
      @apexyu164 Před měsícem

      which step need to be taken

  • @Natasx310
    @Natasx310 Před 2 lety +4

    This was super helpful. I have been looking for a way to have .env files within Java and Spring boot. Coming from javascript as well its sooo easy. But you have made it so easy on this language as well. Thank You!

  • @Mexa1482
    @Mexa1482 Před rokem +4

    Great video!! Been looking for this and by far the best explanation.

    • @DanVega
      @DanVega  Před rokem +2

      Glad it was helpful!

  • @SouravBanik90
    @SouravBanik90 Před 10 měsíci +1

    Thanks a ton! This is helpful! I really did not know how to deploy in production as a personal project. This gives me new horizons to explore and learn!

    • @DanVega
      @DanVega  Před 10 měsíci +1

      Glad it helped!

  • @AnantaAkash.Podder
    @AnantaAkash.Podder Před 5 měsíci

    Great video sir... was searching for this kind of mechanism... Thank you Sir

  • @hasanabir115
    @hasanabir115 Před 2 lety +2

    That was crazy helpful! Thanks a lot

  • @nguyenquan4836
    @nguyenquan4836 Před rokem

    Thank you so much!

  • @drakenra
    @drakenra Před 8 měsíci

    This is great! Didn't know that such thing exists before this. I have just create new profile application file and put git ignore that file or pass those variables as environment variable 😅

  • @coderlady_
    @coderlady_ Před 2 lety +1

    Hi, this is really gold, thank you
    Thank you

  • @tomaszw6449
    @tomaszw6449 Před 9 měsíci

    Big thumbs up!

  • @VitaliiSmahlenko
    @VitaliiSmahlenko Před 9 měsíci

    Thank you a lot!!!

  • @michelchaghoury870
    @michelchaghoury870 Před 2 lety +2

    as always great content, can you please in the future make videos about testing integration and e2e pleasee, and please we need more content

  • @lts8683
    @lts8683 Před 2 lety +1

    very usefull, thanks you

  • @WondervilleSeries
    @WondervilleSeries Před 3 měsíci

    Thank you!

  • @tree2rhym
    @tree2rhym Před 2 lety

    Basically if I do the same with aws/azure cloud provider , I just need to make sure to have those properties in env , is that understanding correct ?

  • @jetezra4607
    @jetezra4607 Před rokem +1

    saved my day, thanks alot

  • @germinikkii
    @germinikkii Před rokem +1

    Hi!, nice video, it was useful for me, but I want to know if you have a similiar video where explain how to convert aws secrets in a configuration properties to use. Thanks

  • @DerylSpielman
    @DerylSpielman Před rokem

    If you have multiple devs working on the project how do you set them up with all of the secrets? Doesn't it become unmanageable?

  • @mostafahashemi9073
    @mostafahashemi9073 Před 5 měsíci

    Thank you 🎉🎉.
    in our team with the help of spring-config-location , its operation group that would put config file near jars .
    We never have operational environment config during coding . Imo its not good practice.

  • @computeranalyst5737
    @computeranalyst5737 Před 9 měsíci

    This is a great tutorial. Learnt a lot from this. Thanks a lot.
    One curious question: From where did you get this animated picture of your face? I want to generate too :) Can you share the link please?

  • @pejko89
    @pejko89 Před rokem

    How to solve my Java With Maven CI build fail because it can't resolve those variables?

  • @bpnaidu4u
    @bpnaidu4u Před 10 měsíci

    @Dan Vega
    Thank you for wonderful Video on Spring boot secrets with Java 17 version,
    Could you help me how can we do same example for Java 8 version where we do not have record type is not present

  • @yelderiny
    @yelderiny Před 2 lety

    How do you deal with Github workflows not working after doing this?

  • @hamyazilim
    @hamyazilim Před rokem +1

    Can you show us the vault integration?

  • @amarildo-xyz
    @amarildo-xyz Před 2 lety +2

    Previously I just created a prod profile, set it as active before creating the jar, or add it to the command line args on production. If I didn't want to make those configs/credentials public, just ignored the prod file in gitignore
    Including properties files is quite a nice addition, I might even use this to organize configurations in different files

  • @artemkudria9250
    @artemkudria9250 Před rokem

    fire🔥

  • @jamesokonkwo5815
    @jamesokonkwo5815 Před 2 lety

    My spring.config.import=optional:secrets.properties is not importing, not working. Is not seeing it, returns NullException and pointing at the main class where I declare (map) the configuration properties. How can I resolve it please?

    • @ILyaCyclone
      @ILyaCyclone Před 2 lety +1

      Check spring boot version. I think spring.config.import is only since like 2.4.0 or smth.

  • @abedalrawas2656
    @abedalrawas2656 Před rokem

    Yes I want to go with you

  • @abadongutierrez
    @abadongutierrez Před rokem +1

    is it possible to use classpath: or file: besides that optional: option?

    • @DanVega
      @DanVega  Před rokem

      You can use classpath or file to locate a file but optional is used to tell Spring not to fall over if its not found.

  • @dinobulja
    @dinobulja Před rokem

    why not use jasypt?

  • @marouaniAymen
    @marouaniAymen Před 2 lety +1

    Thanks for the video, what about the case when we build a Docker image ? In real life, our DevOps "Philosophy" regarding containers, is to build and image independently from the environment (DEV, UAT or PROD) and to add the config (with secrets) later when deploying.

    • @DanVega
      @DanVega  Před 2 lety +1

      You can set an environment variable in docker, you're just overriding that.

  • @dd1.d
    @dd1.d Před 2 lety +1

    I use Jasypt to encrypt these secrets