2017-12-15 17:57:41 +01:00
|
|
|
package eu.eudat.configurations;
|
|
|
|
|
2023-10-11 16:53:12 +02:00
|
|
|
import eu.eudat.commons.scope.UserScope;
|
|
|
|
import eu.eudat.interceptors.UserInterceptor;
|
2018-06-27 12:29:21 +02:00
|
|
|
import eu.eudat.logic.handlers.PrincipalArgumentResolver;
|
|
|
|
import eu.eudat.logic.services.ApiContext;
|
2019-07-12 15:58:17 +02:00
|
|
|
import eu.eudat.logic.services.operations.authentication.AuthenticationService;
|
2023-10-11 16:53:12 +02:00
|
|
|
import gr.cite.commons.web.oidc.principal.CurrentPrincipalResolver;
|
2017-12-19 10:02:25 +01:00
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
2017-12-15 17:57:41 +01:00
|
|
|
import org.springframework.context.annotation.Configuration;
|
2018-02-07 10:56:30 +01:00
|
|
|
import org.springframework.scheduling.annotation.EnableAsync;
|
2020-02-14 17:40:34 +01:00
|
|
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
2017-12-15 17:57:41 +01:00
|
|
|
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
|
2018-03-05 17:18:45 +01:00
|
|
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
2023-10-03 16:29:45 +02:00
|
|
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
2017-12-15 17:57:41 +01:00
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
2018-02-07 10:56:30 +01:00
|
|
|
@EnableAsync
|
2017-12-15 17:57:41 +01:00
|
|
|
@Configuration
|
2020-02-14 17:40:34 +01:00
|
|
|
@EnableScheduling
|
2023-10-03 16:29:45 +02:00
|
|
|
public class WebMVCConfiguration implements WebMvcConfigurer {
|
2017-12-15 17:57:41 +01:00
|
|
|
|
2019-07-12 15:58:17 +02:00
|
|
|
private ApiContext apiContext;
|
2018-03-05 17:18:45 +01:00
|
|
|
|
2019-07-12 15:58:17 +02:00
|
|
|
private AuthenticationService verifiedUserAuthenticationService;
|
|
|
|
private AuthenticationService nonVerifiedUserAuthenticationService;
|
2023-10-11 16:53:12 +02:00
|
|
|
private final UserInterceptor userInterceptor;
|
|
|
|
private final UserScope userScope;
|
|
|
|
private final CurrentPrincipalResolver currentPrincipalResolver;
|
2018-03-05 17:18:45 +01:00
|
|
|
|
2019-07-12 15:58:17 +02:00
|
|
|
@Autowired
|
2023-10-11 16:53:12 +02:00
|
|
|
public WebMVCConfiguration(ApiContext apiContext, AuthenticationService verifiedUserAuthenticationService, AuthenticationService nonVerifiedUserAuthenticationService, UserInterceptor userInterceptor, UserScope userScope, CurrentPrincipalResolver currentPrincipalResolver) {
|
2019-07-12 15:58:17 +02:00
|
|
|
this.apiContext = apiContext;
|
|
|
|
this.verifiedUserAuthenticationService = verifiedUserAuthenticationService;
|
|
|
|
this.nonVerifiedUserAuthenticationService = nonVerifiedUserAuthenticationService;
|
2023-10-11 16:53:12 +02:00
|
|
|
this.userInterceptor = userInterceptor;
|
|
|
|
this.userScope = userScope;
|
|
|
|
this.currentPrincipalResolver = currentPrincipalResolver;
|
2019-07-12 15:58:17 +02:00
|
|
|
}
|
2018-02-16 11:34:02 +01:00
|
|
|
|
2019-07-12 15:58:17 +02:00
|
|
|
@Autowired
|
|
|
|
@Override
|
|
|
|
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
|
2023-10-11 16:53:12 +02:00
|
|
|
argumentResolvers.add(new PrincipalArgumentResolver(verifiedUserAuthenticationService, nonVerifiedUserAuthenticationService, userScope, currentPrincipalResolver));
|
2019-07-12 15:58:17 +02:00
|
|
|
}
|
2018-03-05 17:18:45 +01:00
|
|
|
|
2019-07-12 15:58:17 +02:00
|
|
|
@Override
|
|
|
|
public void addInterceptors(InterceptorRegistry registry) {
|
2020-01-28 17:33:50 +01:00
|
|
|
// registry.addInterceptor(new RequestInterceptor(this.apiContext.getHelpersService().getLoggerService()));
|
2023-10-11 16:53:12 +02:00
|
|
|
registry.addWebRequestInterceptor(userInterceptor).order(1);
|
2019-07-12 15:58:17 +02:00
|
|
|
}
|
2017-12-15 17:57:41 +01:00
|
|
|
}
|