인프런 커뮤니티 질문&답변

송상근님의 프로필 이미지
송상근

작성한 질문수

스프링 시큐리티

2) 사용자 정의 보안 기능 구현

anyRequest().authenticated() 접근 안 됨

작성

·

822

0

@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{
    http
            .authorizeHttpRequests(authorize -> authorize
                    .anyRequest().authenticated()
            )
    ;

    return http.build();
}

이런 식으로 설정을 했는데 아예 권한이 없어서(?) 접근이 안되는 403 에러가 나네요.. 해당 부분은 SecurityConfig 설정 하는 방법이 변경 되어서 나는 다른 점일까요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

송상근님의 SecurityConfig 설정에서 .anyRequest().authenticated()는 모든 요청에 대해 인증을 요구하는 설정입니다. 이 설정을 사용할 때는 인증을 처리할 수 있는 로그인 설정도 함께 구성해주셔야 합니다. 예를 들어, http.formLogin()과 같은 방법으로 로그인 처리를 할 수 있는 설정이 필요합니다.

Spring Boot 2.x 버전 이후로 Spring Security의 설정 방법에 변화가 있었습니다. 사용자 정의 SecurityFilterChain 빈을 등록함으로써 기본적인 웹 애플리케이션 보안 구성을 비활성화하고 사용자가 직접 보안 구성을 정의할 수 있게 되었습니다. SecurityFilterChain 빈을 정의하면 SecurityAutoConfigurationUserDetailsServiceAutoConfiguration이 제공하는 기본 보안 구성이 비활성화됩니다.

또한, Actuator 엔드포인트 등의 보안 설정을 위해 EndpointRequest.toAnyEndpoint()를 사용하여 엔드포인트에 대한 보안 규칙을 적용할 수 있는 설정을 추가할 수 있습니다.

여러분의 설정이 정상적으로 작동하지 않을 경우, 다음과 같은 점들을 확인해보시는 것이 좋습니다:

  1. 인증 메커니즘(예: 기본 로그인 폼, OAuth, LDAP 등)이 올바르게 설정되어 있는지 확인합니다.
  2. 사용자 인증 정보(예: 사용자 이름과 비밀번호)가 올바르게 설정되어 있고 인증 시스템에 등록되어 있는지 확인합니다.
  3. 설정한 SecurityFilterChain이 애플리케이션의 다른 부분(예: 컨트롤러, 서비스 등)에 영향을 주지 않는지 확인합니다.

더 자세한 정보를 원하신다면, Spring Boot Reference Documentation의 관련 부분을 참고하시기를 권장드립니다:

만약 인증이 실패하여 계속해서 403 에러가 발생한다면, 위의 문서들을 참고하여 인증 메커니즘과 사용자 인증 정보 설정에 문제가 없는지 다시 한번 확인해보시기 바랍니다.

송상근님의 프로필 이미지
송상근

작성한 질문수

질문하기