java, spring

[Spring] 어노테이션을 이용하는 스프링 시큐리티 설정

isaac.kim 2021. 10. 4. 18:55
728x90
반응형

[Spring] 어노테이션을 이용하는 스프링 시큐리티 설정

XML, JAVA 설정 외 어노테이션을 이용해 스프링 시큐리티를 설정할 수 있습니다.

사용되는 어노테이션은 주로 @Secured, @PreAuthorize, @PostAuthorize

 

@Secured : ( ) 에 ROLE_ADMIN과 같은 문자열 혹은 문자열 배열을 이용합니다.

@PreAuthorize, @PostAuthorize : ( ) 안에 표현식을 사용할 수 있습니다.

 

이전 XML예제 프로젝트를 사용합니다.

SampleController에 간단한 메서드와 설정을 추가합니다.

 

SampleController 클래스 (코드 추가)

@PreAuthorize는 표현식 'hasAnyRole'을 사용해 체크하고, @Secured는 단순 값(value)만 추가할 수 있어, 여러 개를 사용할 때는 배열로 표현합니다.

 

※ 스프링 시큐리티의 어노테이션을 활성화하기 위해서는 security-context.xml이 아닌 스프링 MVC의 설정을 담당하는 servlet-context.xml에 관련 설정이 추가합니다.

 

servlet-context.xml에 namespace탭에서 security를 체크해 추가합니다. servlet-context.xml의 <beans:beans>  태그의 xsi:schemaLocation 속성에 스프링 시큐리티 5.0 버전으로 추가되는 것은 버전을 4.2로 낮추거나 지워야 에러없이 작동합니다.

 

servlet-context.xml

추가된 security 네임스페이스를 이용해서 global-method-security를 지정합니다. 어노테이션은 defualt 'disabled'되어 있으므로 'enabled'로 설정합니다. Java 설정을 이용할 땐 servlet-context.xml에 상응하는 ServletConfig.java 클래스에 어노테이션을 추가해서 사용합니다.


ServletConfig 클래스의 일부

하위 내용은 생략


어노테이션을 이용하여 스프링 시큐리티를 설정하는 방법에 대해 알아보았습니다.

728x90
반응형