1.의의
2.사용 애너테이션
1)@Secured
2)@PreAuthorize
3)@ PostAuthorize
3.securedEnabled 속성 설정
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled=true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(customUserDetailsService())
.passwordEncoder(passwordEncoder());
}
4.Secured 메서드 보안 애너테이션 적용
@RequestMapping("/board")
public class BoardController {
private final BoardService service;
@Secured("ROLE_MEMBER")
@GetMapping("/register")
public void registerForm(Model model, @AuthenticationPrincipal CustomUser customUser) throws Exception {
Member member = customUser.getMember();
log.info("registerForm member.getUserId() = " + member.getUserId());
Board board = new Board();
board.setWriter(member.getUserId());
model.addAttribute(board);
}
5.prePostEnabled 속성 설정