[CS] Spring Security

nayu1105·2023년 5월 28일

CS

목록 보기
4/4

Spring Security

  • Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크
  • ‘인증’과 ‘권한’에 대한 부분을 Filter 흐름에 따라 처리

Authorization 과 Authentication

Authorization - 인증

  • 해당 사용자가 본인이 맞는지를 확인하는 절차

Authentication - 인가

  • 인증된 사용자가 요청한 자원에 접근 가능한지를 결정하는 절차

SecurityConfig.java 예시

package com.example.user.global.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
@EnableWebSecurity
public class SecurityConfig {
    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http
            .httpBasic().disable()
            .csrf().disable()
            .cors()
            .and()

            .authorizeRequests()
						// "/user/login"과 "/user/logout"은 security 적용 X
            .antMatchers("/user/login","/user/logout").permitAll()
						// "/user/login"은 security 적용
            .antMatchers("/user/test").authenticated()
            .anyRequest().permitAll()

            .and()
            .logout().disable()
            .sessionManagement()
            .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
            .and()
            .formLogin().disable();
            .addFilter(new UsernamePasswordAuthenticationFilter());

        return http.build();
    }

}

0개의 댓글