인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

byungsoo님의 프로필 이미지
byungsoo

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Users Microservice - AuthenticationFilter 추가

WebSecurity 설정 질문입니다.

작성

·

319

0

 @Bean
    protected SecurityFilterChain config(HttpSecurity http) throws Exception {

        http.csrf( (csrf) -> csrf.disable() );

        http.authorizeHttpRequests(
                authorize -> authorize
                        .requestMatchers("/**").permitAll()
                        .anyRequest().authenticated()
        );

        http.headers((headers) -> headers.frameOptions( (frameOptions) -> frameOptions.sameOrigin()));

        return http.build();
    } 

이 코드를

@Bean
protected SecurityFilterChain config(HttpSecurity http) throws Exception {

    http.csrf( (csrf) -> csrf.disable() );

    http.authorizeHttpRequests(
            authorize -> authorize
                    .requestMatchers("/**")
                    .access(
                            new WebExpressionAuthorizationManager("hasIpAddress('127.0.0.1') or hasIpAddress('::1') or hasIpAddress('" + MY_IP + "')")
                    )
                    .anyRequest().authenticated()
    );

    http.headers((headers) -> headers.frameOptions( (frameOptions) -> frameOptions.sameOrigin()));

    return http.build();
}


.access( new WebExpressionAuthorizationManager("hasIpAddress('127.0.0.1') or hasIpAddress('::1') or hasIpAddress('" + MY_IP + "')") ) 이 부분을 추가시키면,

파일 링크로 가는 것이 아니라, info 라는 파일이 다운받아지는데, 어떻게 해결해야 할지 여쭤보고 싶습니다 ㅠㅜ

답변 1

0

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

byungsoo님께서 WebSecurity 설정에 대해 질문 주셨군요. 유사한 문제에 대한 해결책을 포함한 기존 답변을 찾아 다음 링크를 추천드립니다:

  1. There was an unexpected error (type=Forbidden, status=403). Access Denied 에러

    • Spring Security 설정 변경 시, API 게이트웨이에서 오는 요청의 IP 주소 문제를 해결할 수 있는 방법을 다룹니다.
  2. hasIpAddress(“제 아이피”) 허용안됩니다…

    • hasIpAddress 메소드 대신 access 메소드를 사용하는 방법에 대한 설명과 관련된 정보가 포함되어 있습니다.

위 링크에서 소개된 방법들을 참고하여 다음과 같이 설정을 변경해보시기 바랍니다:

@Bean
protected SecurityFilterChain config(HttpSecurity http) throws Exception {

    http.csrf(csrf -> csrf.disable());

    http.authorizeHttpRequests(authorize -> authorize
            .requestMatchers("/**")
            .access(new WebExpressionAuthorizationManager(
                    "hasIpAddress('127.0.0.1') or hasIpAddress('::1') or hasIpAddress('" + MY_IP + "')"
            ))
            .anyRequest().authenticated()
    );

    http.headers(headers -> headers.frameOptions(frameOptions -> frameOptions.sameOrigin()));

    return http.build();
}

추가로 파일 다운로드 현상 문제는 보통 Spring Security 설정이나 클라이언트 요청 헤더가 잘못되었을 때 발생할 수 있습니다. 보안 설정이 제대로 되어있는지, 또는 IP 주소가 정확한지 다시 확인해보세요. 정확한 IP 주소를 확인하고 설정하는 것도 중요합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

byungsoo님의 프로필 이미지
byungsoo
질문자

해당 부분이 반영되어서... 좀 더 자세한 답변이 요구됩니다.

byungsoo님의 프로필 이미지
byungsoo

작성한 질문수

질문하기