스프링 시큐리티 역시 다른기능들처럼 어노테이션을 이용해서 필요한 설정을 추가할수 있다.
사용되는 어노테이션은 주로
@Secured - 스프링 시큐리티 초기부터 사용되었고, () 안에 'ROLE_ADMIN'과 같은 문자열 혹은 문자배열을 이용한다
@PreAuthorize,@PostAuthorize - 3버전부터 지원되며, () 안에 표현식을 사용할수 있으므로 최근에 많이사용
예제를 위해 컨트롤러에 추가해본다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
@PreAuthorize("hasAnyRole('ROLE_ADMIN','ROLE_MEMBER')")
@GetMapping("/annoMember")
public void domember2() {
log.info("로그인 어노테이션 멤버");
}
@Secured({"ROLE_ADMIN"})
@GetMapping("/annoAdmin")
public void doAdmin2() {
log.info("어드민 어노테이션 ");
}
|
cs |
doMember2는 @PreAuthorzie를 이용해 표현식으로 체크하고
doAdmin2는 @Secured를 이용해 처리함( 단순히 값만 추가할수 있으므로 여러개 사용할떄는 배열로 표현한다)
주의할 사항은 컨트롤러에서 사용하는 시큐리티의 어노테이션을 활성하 하기위해서는,
security-context.xml이 아닌, 스프링 MVC의 설정을 담당하는 servlet-context.xml에 관련설정을 추가해야한다.
servlet-context.xml에 security 네임스페이스를 추가한다. ( 5.0 버전 지워주기)
추가된 security 네임스페이스를 이용해서 global-method-security를 지정한다.
기본으로 'disable'되어 있으므로 변경해준다
1
2
3
|
<security:global-method-security pre-post-annotations="enabled" secured-annotations="enabled"/>
|
cs |
????근데 이건 부트에서 쓸떄 쓰는건가..?? 이게 책의내용의 끝인데 괜히 더 헷갈린다...
'읽은 책 정리 > 코드로 배우는 스프링 웹 프로젝트' 카테고리의 다른 글
[Spring] 37 기존 프로젝트에 스프링 시큐리티 접목하기 (0) | 2021.03.03 |
---|---|
[Spring] 35 자동 로그인(remember-me) (0) | 2021.03.01 |
[Spring] 34 스프링 시큐리티를 JSP에서 사용하기 (0) | 2021.03.01 |
[Spring] 33 커스텀 UserDetailsServices 활용 (0) | 2021.02.12 |
[Spring] 32 JDBC를 이용하는 간편 인증/권한처리 (0) | 2021.02.12 |