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 속성 설정