All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ru.mynewtons.starter.oauth2.config.OAuth2AutoConfiguration Maven / Gradle / Ivy

package ru.mynewtons.starter.oauth2.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.data.domain.AuditorAware;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import ru.mynewtons.starter.oauth2.config.security.audit.UsernameAuditorAware;

import javax.sql.DataSource;
import java.util.Locale;

@Configuration
@EntityScan(basePackages = "ru.mynewtons.starter.oauth2.domain")
@ComponentScan(basePackages = "ru.mynewtons.starter.oauth2")
@EnableJpaRepositories(basePackages = "ru.mynewtons.starter.oauth2.repository")
@EnableJpaAuditing(auditorAwareRef = "auditorProvider")
@ConditionalOnClass(DataSource.class)
@PropertySource("classpath:management.properties")
public class OAuth2AutoConfiguration {

    @Bean
    public Locale locale(@Value("${spring.mvc.locale}") String languageTag) {
        return Locale.forLanguageTag(languageTag);
    }

    @Bean
    public AuditorAware auditorProvider() {
        return new UsernameAuditorAware();
    }

    @Bean(name = "oauth2MessageSource")
    public MessageSource messageSource() {
        ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
        messageSource.setBasename("classpath:/locale/management.messages");
        messageSource.setDefaultEncoding("UTF-8");
        return messageSource;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy