Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.eightbit.mostbet.bonus.configuration;
- import com.eightbit.mostbet.bonus.application.storage.ProjectStorage;
- import com.eightbit.mostbet.bonus.infrastructure.ProjectRepository;
- import com.eightbit.mostbet.bonus.infrastructure.logging.FingerprintMDCFilter;
- import com.eightbit.mostbet.bonus.infrastructure.logging.HttpLoggingFilter;
- import com.eightbit.mostbet.bonus.presentation.http.request.middleware.ProjectExistence;
- import com.eightbit.mostbet.bonus.presentation.http.request.middleware.ProjectFilterInitialize;
- import com.eightbit.mostbet.bonus.presentation.http.request.middleware.ProjectUuidExistence;
- import com.eightbit.mostbet.bonus.presentation.http.transformer.JsonTransformer;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.boot.web.servlet.FilterRegistrationBean;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import javax.persistence.EntityManager;
- @Configuration
- @ConfigurationProperties(prefix = "config.slf4jfilter")
- public class FilterConfiguration {
- public static final String MDC_SESSION_KEY = "session_fingerprint";
- public static final String MNC_PROCESS_KEY = "process_fingerprint";
- public static final String REQUEST_HEADER = "x-session-fingerprint";
- @Bean
- public FilterRegistrationBean<FingerprintMDCFilter> fingerprintRegistrationBean() {
- final FilterRegistrationBean<FingerprintMDCFilter> registrationBean = new FilterRegistrationBean<>();
- registrationBean.setFilter(createFingerprintFilter());
- registrationBean.setOrder(2);
- return registrationBean;
- }
- @Bean
- public FilterRegistrationBean<HttpLoggingFilter> requestRegistrationBean() {
- final FilterRegistrationBean<HttpLoggingFilter> registrationBean = new FilterRegistrationBean<>();
- registrationBean.setFilter(createRequestFilter());
- registrationBean.setOrder(3);
- return registrationBean;
- }
- @Bean
- public FilterRegistrationBean<ProjectUuidExistence> projectUuidExistence(JsonTransformer jsonTransformer) {
- final FilterRegistrationBean<ProjectUuidExistence> registrationBean = new FilterRegistrationBean<>();
- registrationBean.setFilter(createProjectUuidExistenceFilter(jsonTransformer));
- registrationBean.setOrder(4);
- return registrationBean;
- }
- @Bean
- public FilterRegistrationBean<ProjectExistence> projectExistence(ProjectStorage projectStorage, ProjectRepository projectRepository, JsonTransformer jsonTransformer) {
- final FilterRegistrationBean<ProjectExistence> registrationBean = new FilterRegistrationBean<>();
- registrationBean.setFilter(createProjectExistence(projectStorage, projectRepository, jsonTransformer));
- registrationBean.setOrder(5);
- return registrationBean;
- }
- @Bean
- public FilterRegistrationBean<ProjectFilterInitialize> projectFilterInitialize(EntityManager entityManager, ProjectStorage projectStorage, JsonTransformer jsonTransformer) {
- final FilterRegistrationBean<ProjectFilterInitialize> registrationBean = new FilterRegistrationBean<>();
- registrationBean.setFilter(createProjectFilterInitialize(entityManager, projectStorage, jsonTransformer));
- registrationBean.setOrder(6);
- return registrationBean;
- }
- private FingerprintMDCFilter createFingerprintFilter() {
- return new FingerprintMDCFilter(MDC_SESSION_KEY, MNC_PROCESS_KEY, REQUEST_HEADER);
- }
- private HttpLoggingFilter createRequestFilter() {
- return new HttpLoggingFilter();
- }
- private ProjectUuidExistence createProjectUuidExistenceFilter(JsonTransformer jsonTransformer) {
- return new ProjectUuidExistence(jsonTransformer);
- }
- private ProjectExistence createProjectExistence(ProjectStorage projectStorage, ProjectRepository projectRepository, JsonTransformer jsonTransformer) {
- return new ProjectExistence(projectStorage, projectRepository, jsonTransformer);
- }
- private ProjectFilterInitialize createProjectFilterInitialize(EntityManager entityManager, ProjectStorage projectStorage, JsonTransformer jsonTransformer) {
- return new ProjectFilterInitialize(entityManager, projectStorage, jsonTransformer);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement