package io.loli.box; import io.loli.box.oauth2.AuthorizationServerConfiguration; import io.loli.box.oauth2.ResourceServer; import org.hashids.Hashids; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.cloud.netflix.zuul.EnableZuulProxy; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Primary; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.social.config.annotation.EnableSocial; import javax.servlet.ServletContext; @SpringBootApplication @EnableZuulProxy @EnableJpaRepositories @Import({MvcConfig.class, SecurityConfig.class, AuthorizationServerConfiguration.class, ResourceServer.class}) @EnableSocial @EntityScan("io.loli.box.entity") public class LoliboxApplication { public static void main(String[] args) { SpringApplication.run(LoliboxApplication.class, args); } @Bean @Primary public Hashids hashids() { Hashids hashids = new Hashids(LoliboxApplication.class .toString()); return hashids; } @Bean @ConditionalOnProperty(name = "admin.signupInvitation", havingValue = "true") public Hashids invitationCodeHashIds(AdminProperties adminProperties) { Hashids hashids = new Hashids(adminProperties.getInvitationSeed(), 20); return hashids; } @Autowired public void addAdminPropertiesToContext(ServletContext context, AdminProperties adminProperties) { context.setAttribute("adminProperties", adminProperties); } }