먼저 시큐리티 SpringEL 설정을 활성화한다.
security-context.xml 설정 파일을 확인하면 된다.
<http use-expressions="true" ...
pre-post-annotations 설정을 활성화한다. component-scan 을 설정한 파일을 확인하거나 추가한다.
<security:global-method-security pre-post-annotations="enabled" />
컨트롤러 스캔과 서비스 스캔을 따로하는 경우가 있다. 이럴때는 두 설정파일에 모두 pre-post-annotations
설정을 활성화해야 한다.
-----------------
스프링 부트의 경우
(prePostEnabled = true)
를 추가해주어야함.
@Secured는 표현식 사용할 수 없고
@PreAuthroize는 표현식 사용 가능
예)
@Secured({"ROLE_USER","ROLE_ADMIN"}) => OR 조건, AND 조건 불가능
@PreAuthorize("hasRole('ROLE_USER') and hasRole('ROLE_ADMIN')") => and 조건, or 조건 모두 가능