allowCredentials
메서드는 CORS (Cross-Origin Resource Sharing)를 사용하여 요청을 보낼 때 자격 증명 정보 (예: 쿠키, 인증 토큰 등)를 포함할지 여부를 설정하는 데 사용됩니다.
기본적으로 CORS는 자격 증명 정보를 포함하지 않도록 구성되어 있습니다. 따라서 브라우저에서 보호되는 자격 증명 정보가 포함된 요청을 보내려면 allowCredentials
메서드를 true로 설정해야 합니다.
그러나 allowCredentials
메서드를 true로 설정하면 보안상의 이유로 allowedOrigins
메서드를 "*" 대신 구체적인 도메인 이름으로 지정해야 합니다. 이는 모든 도메인에서 자격 증명 정보를 요청할 수 없도록 제한하는 데 도움이 됩니다.
예를 들어, 다음과 같이 설정하면 allowCredentials
메서드를 true로 설정하고 allowedOrigins
메서드를 구체적인 도메인 이름으로 지정할 수 있습니다.
java@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("https://www.example.com")
.allowedMethods("*")
.allowedHeaders("Authorization", "Content-Type")
.exposedHeaders("Authorization", "Content-Disposition")
.allowCredentials(true)
.maxAge(3600);
}
}
위의 코드에서는 allowedOrigins
메서드가 "https://www.example.com"으로 설정되어 있으며, allowCredentials
메서드가 true로 설정되어 있습니다. 이 설정은 https://www.example.com
도메인에서 자격 증명 정보를 포함하는 요청을 보내도록 허용하지만, 다른 도메인에서는 자격 증명 정보를 포함하는 요청을 보낼 수 없도록 제한합니다.