package com.piggymetrics.statistics; import com.piggymetrics.statistics.repository.converter.DataPointIdReaderConverter; import com.piggymetrics.statistics.repository.converter.DataPointIdWriterConverter; import com.piggymetrics.statistics.service.security.CustomUserInfoTokenServices; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.security.oauth2.resource.ResourceServerProperties; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.netflix.feign.EnableFeignClients; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.core.convert.CustomConversions; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.security.oauth2.config.annotation.web.configuration.EnableOAuth2Client; import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer; import org.springframework.security.oauth2.provider.token.ResourceServerTokenServices; import java.util.Arrays; @SpringBootApplication @EnableResourceServer @EnableDiscoveryClient @EnableOAuth2Client @EnableFeignClients @EnableGlobalMethodSecurity(prePostEnabled = true) public class StatisticsApplication { @Autowired private ResourceServerProperties sso; public static void main(String[] args) { SpringApplication.run(StatisticsApplication.class, args); } @Bean public ResourceServerTokenServices tokenServices() { return new CustomUserInfoTokenServices(sso.getUserInfoUri(), sso.getClientId()); } @Configuration static class CustomConversionsConfig { @Bean public CustomConversions customConversions() { return new CustomConversions(Arrays.asList(new DataPointIdReaderConverter(), new DataPointIdWriterConverter())); } } }