Spring security architecture summary
2020. 2. 19. 22:30ㆍ[정리] 기능별 개념 정리/Security + OAuth
AuthenticationFilter 의 결과로 Security context 가 채워진다.
사용자의 Request 가 들어오면 해당 요청을 처리하기 위해 어떤 필터를 사용할지 불러온다. WebSecurityConfigurerAdapter 를 작성하는 과정은 어떤 필터들을 사용해야 하는지 지정하는 과정과 같다.
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.mvcMatchers("/account/**").permitAll()
.mvcMatchers("/admin").hasRole("ADMIN")
.mvcMatchers("/user").hasRole("USER")
.accessDecisionManager(accessDecisionManager())
.and()
.formLogin()
.and()
.httpBasic();
}
@Bean
public AccessDecisionManager accessDecisionManager(){
RoleHierarchyImpl roleHierarchy = new RoleHierarchyImpl();
roleHierarchy.setHierarchy("ROLE_ADMIN > ROLE_USER");
DefaultWebSecurityExpressionHandler defaultWebSecurityExpressionHandler = new DefaultWebSecurityExpressionHandler();
defaultWebSecurityExpressionHandler.setRoleHierarchy(roleHierarchy);
WebExpressionVoter webExpressionVoter = new WebExpressionVoter();
webExpressionVoter.setExpressionHandler(defaultWebSecurityExpressionHandler);
List<AccessDecisionVoter<? extends Object>> voters = Arrays.asList(webExpressionVoter);
return new AffirmativeBased(voters);
}
}
'[정리] 기능별 개념 정리 > Security + OAuth' 카테고리의 다른 글
Spring security아키텍처 관점의 인증 과정 (0) | 2019.10.11 |
---|---|
OAuth 그림 요약 (0) | 2019.08.23 |
스프링 시큐리티 주요 인터페이스 (0) | 2019.08.03 |
스프링 시큐리티 개요 (0) | 2019.08.03 |
Security 기초 (2) (0) | 2019.07.13 |