[Spring] Failed to load remote configuration.
2024. 3. 1. 18:10ㆍBE/Spring
728x90
본 포스팅은 Swegger 사용 중 접근 허가와 관련된 에러인 "Failed to load remote configuration"에 대해 다룹니다.
에러 화면
Spring Security는 spring 서버에서 인증 및 인가를 다뤄주는 라이브러리입니다. Spring Security를 이용하여 인증 및 인가를 처리하고 swegger를 이용하려고 했을 때, 아래와 같은 화면이 뜨고 403 에러가 발생하는 것을 알 수 있었습니다.
설정들
swagger를 사용하기 위해 application.properties에 아래와 같이 추가하고
gradle에 의존성 추가할 때, 스프링 부트가 3.0 버전이상이라 아래와 같이 추가해주었습니다.
그리고 SwaggerConfig 파일에 아래와 같이
@Configuration
public class SwaggerConfig {
@Bean
public OpenAPI openAPI() {
String jwt = "JWT";
SecurityRequirement securityRequirement = new SecurityRequirement().addList(jwt);
Components components = new Components().addSecuritySchemes(jwt, new SecurityScheme()
.name(jwt)
.type(SecurityScheme.Type.HTTP)
.scheme("bearer")
.bearerFormat("JWT")
);
return new OpenAPI()
.components(new Components())
.info(apiInfo())
.addSecurityItem(securityRequirement)
.components(components);
}
private Info apiInfo() {
return new Info()
.title("BackOffice") // API의 제목
.description("BackOffice API") // API에 대한 설명
.version("1.0.0"); // API의 버전
}
}
SecurityFilter 설정 아래와 같이
http.authorizeHttpRequests((authorizeHttpRequests) ->
authorizeHttpRequests
.requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll() // resources 접근 허용 설정
.requestMatchers("/admin/**").permitAll() // '/api/user/'로 시작하는 요청 모두 접근 허가
.requestMatchers("/swagger-ui/**", "/v3/api-docs/**").permitAll()
.anyRequest().authenticated() // 그 외 모든 요청 인증처리
);
해주었는데, 해결이 안되는 것이었습니다..
해결 방법
여러 원인들을 생각(e.g. JWT 때문인가?)해보며 몇 시간 끙끙대다가 에러의 처음으로 돌아왔습니다.
이유는 모르겠지만, api-docs로 접근하고 있는 걸 발견!했습니다. 맨처음 코드를 작성할 때, https://devocean.sk.com/experts/techBoardDetail.do?ID=164919 블로그를 참고했는데, 여기에 있는 걸 그대로 따라한 것이 문제였습니다..
따라서 이것을 properties파일에서 지워주면! 아래와 같이 접속이 잘 되는 것을 볼 수 있었습니다.
'BE > Spring' 카테고리의 다른 글
[Spring Security] URI에 따라 접근 권한 부여하기 최신 버전 (0) | 2024.03.05 |
---|---|
[Spring Security] 최신! 로그인 결과를 ResponseBody에 나타내는 법 (0) | 2024.03.05 |
[Spring] 의존성 주입(DI)과 제어의 역전(IoC) (0) | 2024.02.25 |
[Spring] 초간단! 인자의 종류 (0) | 2024.02.24 |
[Spring] 초간단! ResponseDto, RequestDto (0) | 2024.02.24 |