๐ฌ ์ํฉ ์ค๋ช
๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ์ค ์๋์ ๊ฐ์ ์๋ฌ ๊ตฌ๋ฌธ์ ํ์ธํ๋ค.log
๋ ์์ด ๋จ์ํ ์๋ ๊ตฌ๋ฌธ๋ง ๋ฌ๊ฒ ์ด์ํ์ฌ Bean
๋ฑ๋ก์ด ์ ๋๋ก ๋์ด์๋์ง, ๋ก์ง์๋ ๋ฌธ์ ๊ฐ ์๋์ง ํ์ธ์ ํ์ง๋ง ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์์๋ค.
Empty encoded password
๐ ๊ตฌํ ์ฝ๋
public class MemberController {
@PostMapping("...")
public String doModifyPassword(ModifyPasswordDto dto,
@AuthenticationPrincipal MemberContext context){
if(checkMatchPassword(context.getMember().getUsername(), dto.getOldPassword())){
...
}
}
}
public class MemberService{
@Transactional(readOnly = true)
public boolean checkMatchPassword(String username, String oldPassword) {
return passwordEncoder.matches(oldPassword, member.getPassword());
}
}
๐ ์์ธ ๋ถ์
๋ฌธ์ ๋ฅผ ์ขํ๊ฐ๋ฉฐ ๋ก๊น
์ ์งํํ์๊ณ , MemberContext
์ getPassword()
์์ null
๊ฐ์ด ์ฐํ๋ ๊ฒ์ ํ์ธํ์๊ณ , ๊ฒ์ํด๋ณด๋ ์๋์ ๊ฐ์ ๊ธ์ ํ์ธํ ์ ์์๋ค.
Spring Security
๋ ์ธ์ฆ์ ์ํํ๋ฉดAuthentication
๊ฐ์ฒด์์ ์ํธ๋ฅผ ์ง์ฐ๋ ๊ณผ์ ์ ์ํํ๋ค.
์ฆ, @AuthenticationPrincipal
์ด๋
ธํ
์ด์
์ ์ฌ์ฉํด ๊ฐ์ ธ์จ getMember().getPassword()
๊ฐ null
์ด ์ฐํ๋ ์ด์ ๋Spring Security
์์ ์ธ์ฆ์ ์๋ฃํด์ password
๋ฅผ ๋ ๋ ค๋ฒ๋ฆฐ ๊ฒ์ด๋ค.
โ ํด๊ฒฐ ๊ณผ์
SecurityConfig
๋ฅผ ํตํด ํด๊ฒฐํ๋ฉด ์ธ์ฆ ํ์๋ password
๊ฐ ์ง์์ง์ง ์์ JWT
์ฐ๋ ์ ๋ณด์์ ์ทจ์ฝํด์ง ์ ์๋ค.
๋๋ฌธ์ MemberContext
์ username
์ ํ์ฉํด์ ๋ค์ ์ฐพ์์ค๋ ๋ฐฉ์์ผ๋ก ์์ ํ๋ค.
public class MemberService {
// ๋ ๊ฑฐ์ ์ฝ๋
@Transactional(readOnly = true)
public boolean checkMatchPassword(Member member, String oldPassword) {
return passwordEncoder.matches(oldPassword, member.getPassword());
}
// ๊ฐ์ ์ฝ๋
@Transactional(readOnly = true)
public boolean checkMatchPassword(String username, String oldPassword) {
Member currentMember = memberRepository.findByUsername(username).orElse(null);
if (currentMember != null) {
return passwordEncoder.matches(oldPassword, currentMember.getPassword());
}
return false;
}
}
'Spring > ์๋ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring] - Request Entity Too Large (2) | 2023.09.10 |
---|---|
[Spring] - SpringActionTagProcessor (0) | 2023.09.10 |
[Spring] - Entity Manager Factory ์๋ฌ (0) | 2023.09.10 |
[Spring] - SimpleMailMessage ์๋ฌ (0) | 2023.09.10 |
[Spring] - @SpringBootTest ์๋ฌ (0) | 2023.09.10 |