๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
[Error Handling]

๐Ÿ˜ก [Spring Security] There is no PasswordEncoder mapped for the id "null"

by ํŒกํŽ‘ํ 2023. 4. 25.
728x90

๐Ÿšจ Error :

ํšŒ์‚ฌ์˜ ์ธ์ฆ ๊ด€๋ จ ์„œ๋ฒ„๋ฅผ ํ…Œ์ŠคํŠธ ์‹คํ–‰ํ•˜๋˜ ์ค‘์— ์ด์™€ ๊ฐ™์€ ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚ฌ๋‹ค.

ํฌ์ŠคํŠธ๋งจ์—์„œ ๋กœ๊ทธ์ธ ๊ด€๋ จ api ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ ์ค‘์ด์—ˆ๋Š”๋ฐ ์œ„ ์—๋Ÿฌ์™€ ํ•จ๊ป˜ ๋กœ๊ทธ์ธ์ด ๋˜์ง€ ์•Š์•˜๋‹ค.

๐Ÿค“ ์›์ธ :

 Spring Security 4์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์•”ํ˜ธ๋ฅผ ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ Spring Security 5๋ถ€ํ„ฐ๋Š” ์•”ํ˜ธ ๊ด€๋ฆฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋Œ€ํญ ๊ฐœํŽธ๋˜์–ด ์•”ํ˜ธ์˜ ์ธ์ฝ”๋”ฉ๊ณผ ๋””์ฝ”๋”ฉ ์‹œ ์•ˆ์ „์„ ์œ„ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ๋„์ž…๋˜์—ˆ๋‹ค. ํšŒ์‚ฌ์˜ ์ด์ „ ๋ฒ„์ „ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ์—๋Š” ์ด์™€ ๊ฐ™์€ ์•”ํ˜ธํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜ ๊ณผ์ •์ด ๋ˆ„๋ฝ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์˜€๋‹ค.(Spring Security 4๊ฐ€ ์‚ฌ์šฉ๋œ ์„œ๋ฒ„์—์„œ ์•”ํ˜ธํ™” ์ธ์ฝ”๋”ฉ์ด ๋œ ๋“ฏ)


๐Ÿš’ ํ•ด๊ฒฐ :

update ํ…Œ์ด๋ธ”๋ช… set PASSWORD = concat('{noop}' , PASSWORD)

 ์ •ํ™•ํžˆ ์„ค๋ช…ํ•˜๋ฉด Spring Security 5๋ถ€ํ„ฐ๋Š” ์ธ์ฝ”๋”ฉ ๋œ ์•”ํ˜ธ ์•ž์— ์ธ์ฝ”๋”ฉ์— ์‚ฌ์šฉํ•œ ์•”ํ˜ธํ™” ๋ฐฉ์‹์ด {bcrypt}, {sha256} ๋“ฑ๊ณผ ๊ฐ™์ด ์‹๋ณ„์ž๋กœ ๋ถ™๋Š”๋‹ค.(์ฐธ๊ณ ๋กœ ์ธ์ฝ”๋”ฉ์— ์‚ฌ์šฉ๋œ ์•”ํ˜ธํ™” ๋ฐฉ์‹์„ ์•Œ ์ˆ˜ ์—†์„ ๊ฒฝ์šฐ์—๋Š” {noop}๊ฐ€ ๋ถ™๋Š”๋‹ค.)

 

 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์— ์ €์žฅ๋œ ๊ณผ๊ฑฐ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ์—๋Š” ์ด๋Ÿฌํ•œ ๊ณผ์ •์ด ์—†์—ˆ์œผ๋ฏ€๋กœ ์‹๋ณ„์ž ๊ฐ’์ด ์—†๋Š” ์ฑ„๋กœ ์ €์žฅ๋˜์–ด์žˆ์—ˆ๋‹ค. ์ธ์ฝ”๋”ฉ ๋˜์–ด ์ €์žฅ๋œ ๋ชจ๋“  ํŒจ์Šค์›Œ๋“œ ๋ฐ์ดํ„ฐ์— CONCAT({noop}, password)๋ฅผ ์ด์šฉํ•œ SQL ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ ค ๋ชจ๋“  ํŒจ์Šค์›Œ๋“œ ๋ฐ์ดํ„ฐ ์•ž์— {noop}๋ถ™์ด๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ–ˆ๋‹ค.

 ์ฐธ๊ณ ๋กœ ํšŒ์‚ฌ์—์„œ ์‚ฌ์šฉํ•œ ์•”ํ˜ธํ™” ๋ฐฉ์‹์„ {์•”ํ˜ธํ™” ๋ฐฉ์‹}์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•ด์คฌ์„ ๋•Œ์—๋„ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์•„ ๊ณผ๊ฑฐ์˜ ๋ฐ์ดํ„ฐ๋Š” ์ €์žฅ๋œ ์•”ํ˜ธํ™” ๋ฐฉ์‹์„ ์ ์–ด๋„ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์•”ํ˜ธํ™”๋œ ๊ฒƒ์ธ์ง€ Spring Security๊ฐ€ ์ธ์‹์„ ๋ชปํ•˜๋Š” ๋“ฏ์‹ถ๋‹ค.


๐Ÿค” ์˜๋ฌธ์  :

์—†์Œ!

 

 

 

์ฐธ๊ณ 

https://memo-the-day.tistory.com/164

728x90