package eu.eudat.configurations; import eu.eudat.logic.handlers.PrincipalArgumentResolver; import eu.eudat.logic.services.ApiContext; import eu.eudat.logic.services.operations.authentication.AuthenticationService; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import java.util.List; @EnableAsync @Configuration @EnableScheduling public class WebMVCConfiguration implements WebMvcConfigurer { private ApiContext apiContext; private final AuthenticationService verifiedUserAuthenticationService; private final AuthenticationService nonVerifiedUserAuthenticationService; private final Environment environment; public WebMVCConfiguration(ApiContext apiContext, AuthenticationService verifiedUserAuthenticationService, AuthenticationService nonVerifiedUserAuthenticationService, Environment environment) { this.apiContext = apiContext; this.verifiedUserAuthenticationService = verifiedUserAuthenticationService; this.nonVerifiedUserAuthenticationService = nonVerifiedUserAuthenticationService; this.environment = environment; } @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/api/**").allowedOrigins(this.environment.getProperty("dmp.domain")); } @Override public void addArgumentResolvers(List argumentResolvers) { argumentResolvers.add(new PrincipalArgumentResolver(verifiedUserAuthenticationService, nonVerifiedUserAuthenticationService)); } @Override public void addInterceptors(InterceptorRegistry registry) { // registry.addInterceptor(new RequestInterceptor(this.apiContext.getHelpersService().getLoggerService())); } }