[Start Spring Boot] Spring Security 접근 권한 설정하기

·2024년 4월 8일
0

Start Spring Boot!

목록 보기
34/53
post-thumbnail

접근 권한 설정하기

Default

  • 기본적으로 스프링 부트를 설정하면 모든 접근 권한이 로그인을 필요로 한다.
  • SecurityFilterChain을 구현한다.
  • authorizeHttpRequests을 이용해서 요청을 처리함
  • SpringSecurityConfiguration.java에 모든 파일을 작성한다.

모든 접근 허용하기

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http.authorizeHttpRequests(requests -> requests.anyRequest().permitAll())
                .formLogin(Customizer.withDefaults())
                .httpBasic(Customizer.withDefaults());
        return http.build();
    }
    

모든 접근 거부하기

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http.authorizeHttpRequests(requests -> requests.anyRequest().denyAll())
                .formLogin(Customizer.withDefaults())
                .httpBasic(Customizer.withDefaults());

        return http.build();
    }

URL마다 접근 설정하기

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http.authorizeHttpRequests((requests) -> requests
                        .requestMatchers("/api/players").authenticated()
                        .requestMatchers("/api/v1/team").permitAll())
                .formLogin(Customizer.withDefaults())
                .httpBasic(Customizer.withDefaults());

        http.csrf().disable();
        return http.build();
    }
  • requestMatchers를 사용하여 URL별로 접근을 설정할 수 있다.
  • .authenticated()의 경우 인증을 필요로 한다.
  • .permitAll()의 경우 접근을 허용한다.

  • 다음과 같이 로그인 없이 접근이 가능하다.

profile
백엔드 개발자가 꿈인 컴공과

0개의 댓글

관련 채용 정보