개발

@PreAuthorize("isAuthenticated()") not working

Domaya 2023. 1. 24. 16:41

로그인을 한 회원, 즉 인증된 회원만이 글쓰기 페이지에 접근할 수 있게 하기 위해서

@PreAuthorize 어노테이션을 사용했지만

실제로 프로젝트를 구동시키면 해당 어노테이션이 작동하지 않아, 로그인 여부와 상관없이 글쓰기 페이지로 넘어가졌다.

	@GetMapping("/register")
	@PreAuthorize("isAuthenticated()")
	public void register() {
		System.out.println("register컨트롤러");
	}

 

 

찾아보니 다음 어노테이션을 사용하기 위해서는

servlet-context.xml에 다음과 같이 설정을 해주어야 한다고 한다.

 

<!-- @PreAuthorize @PostAutorize @Secured -->
<security:global-method-security pre-post-annotations="enabled" secured-annotations="enabled" />

 

위처럼 설정해준 후 다시 프로젝트를 구동시켜보니

권한이 없는 상태에서 /register로 이동하면

이렇게 로그인을 하라는 창이 잘 뜬다