[๋ณด์] jwt.secret ๊ด๋ฆฌ(.gitignore ์ค์ , SpringBoot+intelliJ)
ํํ๋กญ๋ ์ด๋๋ .... ๋ฉ์ผ์ด ๋ ๋ผ์๋ค...
์ฌ์ฅ์ด ์ฟต ํ๋ค. api key๋ jwtToken์ github์ ์ฌ๋ฆฌ๋ฉด ์๋๋ ์ ์ ์๊ณ ๋ ์์์ง๋ง, ์ ๊ฒฝ์ธ ๊ฒจ๋ฅผ์ด ์์๋ค. ์ฌ์ค์ ๊ท์ฐฎ์์ ๋ฐ๋ก ๋นผ์ง ์์๋ ๊ฑฐ์ผ ์๋.....
๋ก์ปฌ์์ ์์ ํ๊ฑฐ๋ผ์ ๋ณ๋ก ๋ฌธ์ ๋ ์ผ์ ์์์ง๋ง ๊ทธ๋๋ ์ ๋ฌด์์ด ๋ฉ์ผ ์ ๋ชฉ์ ๋ณด๊ณ ์์๋... ๋น์ฅ ํด๊ฒฐํด์ผ๊ฒ ๋ค ์ถ์๋ค.
JWT์ ๋ํ ๋ด์ฉ์ ์ถํ์ ์์ฑํ๊ฒ ๋ค.
JWT secret key
JWT token์ ์๋ช ํ๊ณ ๊ฒ์ฆํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋น๋ฐ ํค๋ฅผ ์๋ฏธํ๋ค.
JWT๋ ๊ณต๊ฐ ํค์ ๋น๋ฐ ํค๋ฅผ ์์ผ๋ก ์ฌ์ฉํ์ฌ ํ ํฐ์ ์๋ช ํ๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ์ ์ ๋ฅผ ์ธ์ฆํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ฐฉ์ ์ค ํ๋์ด๋ค.
์ฆ, ๋น๋ฐ ํค์ด๊ธฐ ๋๋ฌธ์ ์ธ๋ถ์ ์ ์ถ๋๋ฉด ์๋๋ค. ์ด๋ณด ๊ฐ๋ฐ์๋ค์ด ๊ฐ๊ณผํ๋ ๋ถ๋ถ ์ค ํ๋์ธ๋ฐ, ๋ฌด์ง์ฑ์ผ๋ก git push๋ฅผ ๋ ๋ฆฌ๋ค ๋ณด๋ฉด ์ด๋ ์๊ฐ ์ ์ถ๋์๋ค... ์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด์๋ ์ ์ ์ ๋จ๋ ์ฐจ๋ฆฌ๊ณ ์ด์ ๊ฐ์ secret key๋ค์ ๋ฐ๋ก ๋นผ์ .gitignore์ ์ถ๊ฐํด์ฃผ์.
๋๋ spring boot ๊ฐ๋ฐํ๋ค๊ฐ ์๋์ด ์์ผ๋ spring boot + intelliJ ํ๊ฒฝ์์๋ฅผ ์์๋ก ์ค๋ช ํ๊ฒ ๋ค.
SpringBoot + intelliJ ์์ ๋น๋ฐ ํค ๊ด๋ฆฌํ๊ธฐ
1. application.properties์์ ๋น๋ฐ ํค ๋ณต์ฌ
๋จผ์ , application.properties์ ์๋์ ๊ฐ์ด ์ฌ๋ฌ๋ถ์ ๋น๋ฐ ํค๊ฐ ๋ฑ๋ก๋์์ ๊ฒ์ด๋ค.
์ด ํค๋ฅผ ๋ณต์ฌ ํด๋๊ณ , ์ฌ๊ธฐ์๋ ์ญ์ ํ์.
...
//๋น๋ฐ ํค
jwt.secret=secretsecretsecretsecretsecretsecretsecretsecretsecret
jwt.expiration-ms=86400000
...
2. application-secret.properties์ ๋ณต์ฌ
๋ณด์ ์ด์๊ฐ ์๋ ๊ฐ๋ค๋ง ์ ์ฅํด ๋์ application-secret.properties ๋ฅผ ๋ฐ๋ก ๋ง๋ค์ด์ ๋น๋ฐ ํค๋ฅผ ๋ณต์ฌํด์ค๋ค.
//๋น๋ฐ ํค
jwt.secret=secretsecretsecretsecretsecretsecretsecretsecretsecret
3. .gitignore์ application-secret.properties ์ถ๊ฐ
application-secret.properties์ ๊ฒฝ๋ก๊ฐ .gitignore์ ๊ฐ์ผ๋ฉด ํ์ผ๋ช ๋ง ์ถ๊ฐํ๋ค.
...
application-secret.properties
๋ค๋ฅธ ๊ฒฝ๋ก์ ์๋ค๋ฉด ๊ฒฝ๋ก๊น์ง ํฌํจํด์ค๋ค. ์๋๋ ๋ด ์์์ด๋ค.
...
src/main/resources/application-secret.properties
๊ตฟ! ์ด์ push ๋ฅผ ํ๋ ๋ ๋ ค๋ณด๋ฉด! ๋น๋ฐ ํค๊ฐ ์์ ํ๊ฒ ๋ถ๋ฆฌ ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
4. ์ฝ๋์ ์ ์ฉ ํ์ธ
๋ง์ง๋ง์ผ๋ก ์ ์ํ jwt.secret ์ด ์ค์ ์ฝ๋์์ ์ ์ฌ์ฉ๋๊ณ ์๋์ง ๋ค์ ํ์ธํ์.
@Value์ ์ค์ ๊ฐ์ plain secret key๋ฅผ ์ ์ด๋์ผ๋ฉด ๋ง์งฑ ๋๋ฃจ๋ฌต์ด๋ค.
...
@Value("${jwt.secret}")
private String secretKey;
...
+ GitGuardians
์์์ ์ธ๊ธํ ๋์๊ฒ ๋ฉ์ผ ๊ฒฝ๊ณ ๋ฅผ ์ด์ฃผ์๋ ๋ฐ๊ฐ ๋ฐ๋ก GitGuardians๋ค.
๋ด git repository์ ๋ณด์์ ์ํด์ ๋ฏธ๋ฆฌ๋ฏธ๋ฆฌ ๊ฐ์ ํด์ฃผ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
์๋์ ๊ฐ์ด ๋ด ๋ฆฌํฌ์งํ ๋ฆฌ ์ค ๋ณด์ ์ ๋ณด๊ฐ ์ ์ถ๋์๋ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณด์ฌ์ค๋ค.
๊ทธ๋ฆฌ๊ณ ํด๋น ์์ค์ ๋ค์ด๊ฐ๋ฉด, ์ด๋ commit, ์ด๋ ์ฝ๋์์ ์ ๋ณด ์ ์ถ์ด ์ธ์ ์ผ์ด๋ฌ๋์ง ์์ฃผ ์น์ ํ๊ฒ ์๋ ค์ค๋ค!