aboutsummaryrefslogtreecommitdiff
path: root/juick-spring-www/src/main/java/com/juick/www/configuration
diff options
context:
space:
mode:
Diffstat (limited to 'juick-spring-www/src/main/java/com/juick/www/configuration')
-rw-r--r--juick-spring-www/src/main/java/com/juick/www/configuration/WebAppConfiguration.java60
-rw-r--r--juick-spring-www/src/main/java/com/juick/www/configuration/WebSecurityConfig.java70
-rw-r--r--juick-spring-www/src/main/java/com/juick/www/configuration/WwwInitializer.java52
-rw-r--r--juick-spring-www/src/main/java/com/juick/www/configuration/WwwSecurityInitializer.java20
-rw-r--r--juick-spring-www/src/main/java/com/juick/www/configuration/WwwServletConfiguration.java157
5 files changed, 0 insertions, 359 deletions
diff --git a/juick-spring-www/src/main/java/com/juick/www/configuration/WebAppConfiguration.java b/juick-spring-www/src/main/java/com/juick/www/configuration/WebAppConfiguration.java
deleted file mode 100644
index 4482dce1..00000000
--- a/juick-spring-www/src/main/java/com/juick/www/configuration/WebAppConfiguration.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.juick.www.configuration;
-
-import com.juick.www.HelpService;
-import com.juick.www.WebApp;
-import org.apache.commons.lang3.CharEncoding;
-import org.springframework.cache.annotation.EnableCaching;
-import org.springframework.cache.guava.GuavaCacheManager;
-import org.springframework.cache.interceptor.KeyGenerator;
-import org.springframework.cache.interceptor.SimpleKeyGenerator;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.context.support.ResourceBundleMessageSource;
-import org.springframework.core.env.Environment;
-
-import javax.annotation.Resource;
-
-/**
- * Created by aalexeev on 11/22/16.
- */
-@Configuration
-@PropertySource("classpath:juick.conf")
-@EnableCaching
-public class WebAppConfiguration {
- @Resource
- private Environment env;
-
- @Bean
- public ResourceBundleMessageSource messageSource() {
- ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
-
- messageSource.setBasenames("messages", "errors");
- messageSource.setDefaultEncoding(CharEncoding.UTF_8);
- messageSource.setFallbackToSystemLocale(false);
- messageSource.setUseCodeAsDefaultMessage(true);
-
- return messageSource;
- }
-
- @Bean
- public WebApp webApp() {
- return new WebApp(env);
- }
-
- @Bean
- public GuavaCacheManager cacheManager() {
- return new GuavaCacheManager("help");
- }
-
- @Bean
- public HelpService helpService() {
- return new HelpService("help");
- }
-
- @Bean
- public KeyGenerator keyGenerator() {
- // configure and return an implementation of Spring's KeyGenerator SPI
- return new SimpleKeyGenerator();
- }
-}
diff --git a/juick-spring-www/src/main/java/com/juick/www/configuration/WebSecurityConfig.java b/juick-spring-www/src/main/java/com/juick/www/configuration/WebSecurityConfig.java
deleted file mode 100644
index 19485579..00000000
--- a/juick-spring-www/src/main/java/com/juick/www/configuration/WebSecurityConfig.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package com.juick.www.configuration;
-
-import com.juick.server.security.entities.JuickUser;
-import com.juick.service.UserService;
-import com.juick.service.security.JuickUserDetailsService;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.core.env.Environment;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.security.core.userdetails.UserDetailsService;
-
-import javax.annotation.Resource;
-
-/**
- * Created by aalexeev on 11/21/16.
- */
-@EnableWebSecurity
-@PropertySource("classpath:juick.conf")
-public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
- @Resource
- private Environment env;
- @Resource
- private UserService userService;
-
- @Bean("userDetailsService")
- @Override
- public UserDetailsService userDetailsServiceBean() throws Exception {
- return super.userDetailsServiceBean();
- }
-
- @Override
- public UserDetailsService userDetailsService() {
- return new JuickUserDetailsService(userService);
- }
-
- @Override
- protected void configure(HttpSecurity http) throws Exception {
- http
- .authorizeRequests()
- .antMatchers("/settings", "/pm/**").authenticated()
- .anyRequest().permitAll()
- .and()
- .anonymous().principal(JuickUser.ANONYMOUS_USER).authorities(JuickUser.ANONYMOUS_AUTHORITY)
- .and()
- .sessionManagement().invalidSessionUrl("/")
- .and()
- .logout().invalidateHttpSession(true).logoutUrl("/logout").logoutSuccessUrl("/")
- .and()
- .formLogin()
- .loginPage("/login")
- .permitAll()
- .defaultSuccessUrl("/")
- .loginProcessingUrl("/do_login")
- .usernameParameter("j_username")
- .passwordParameter("j_password")
- .failureUrl("/login-error")
- .and()
- .rememberMe()
- .tokenValiditySeconds(6 * 30 * 24 * 3600)
- .alwaysRemember(true)
- //.useSecureCookie(true) // TODO Enable if https is supports
- .rememberMeCookieDomain(env.getProperty("web_domain", "juick.com"))
- .userDetailsService(userDetailsService())
- .key(env.getProperty("auth_remember_me_key"))
- .and()
- .csrf().disable();
- }
-}
diff --git a/juick-spring-www/src/main/java/com/juick/www/configuration/WwwInitializer.java b/juick-spring-www/src/main/java/com/juick/www/configuration/WwwInitializer.java
deleted file mode 100644
index 33687983..00000000
--- a/juick-spring-www/src/main/java/com/juick/www/configuration/WwwInitializer.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.juick.www.configuration;
-
-import com.juick.configuration.DataConfiguration;
-import com.juick.configuration.SearchConfiguration;
-import org.apache.commons.lang3.CharEncoding;
-import org.springframework.web.filter.CharacterEncodingFilter;
-import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
-
-import javax.servlet.FilterRegistration;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-
-/**
- * Created by aalexeev on 11/20/16.
- */
-public class WwwInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
-
- @Override
- protected Class<?>[] getRootConfigClasses() {
- return new Class<?>[]{
- WebAppConfiguration.class,
- DataConfiguration.class,
- SearchConfiguration.class,
- WebSecurityConfig.class};
- }
-
- @Override
- protected Class<?>[] getServletConfigClasses() {
- return new Class<?>[]{WwwServletConfiguration.class};
- }
-
- @Override
- protected String[] getServletMappings() {
- return new String[]{"/"};
- }
-
- @Override
- protected String getServletName() {
- return "WWW-spring dispatcher servlet";
- }
-
- @Override
- public void onStartup(ServletContext servletContext) throws ServletException {
- super.onStartup(servletContext);
-
- FilterRegistration.Dynamic registration = servletContext.addFilter(
- "encodingFilter", new CharacterEncodingFilter(CharEncoding.UTF_8, true));
-
- registration.addMappingForUrlPatterns(null, true, "/*");
- }
-}
-
diff --git a/juick-spring-www/src/main/java/com/juick/www/configuration/WwwSecurityInitializer.java b/juick-spring-www/src/main/java/com/juick/www/configuration/WwwSecurityInitializer.java
deleted file mode 100644
index 0ea8c907..00000000
--- a/juick-spring-www/src/main/java/com/juick/www/configuration/WwwSecurityInitializer.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.juick.www.configuration;
-
-/**
- * Created by vitalyster on 25.11.2016.
- */
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer;
-
-import javax.servlet.ServletContext;
-
-public class WwwSecurityInitializer extends AbstractSecurityWebApplicationInitializer {
- private final Logger logger = LoggerFactory.getLogger(getClass());
-
- @Override
- protected void afterSpringSecurityFilterChain(ServletContext servletContext) {
- logger.info("SpringSecurityFilterChain initialized");
- }
-}
diff --git a/juick-spring-www/src/main/java/com/juick/www/configuration/WwwServletConfiguration.java b/juick-spring-www/src/main/java/com/juick/www/configuration/WwwServletConfiguration.java
deleted file mode 100644
index 5cd251e6..00000000
--- a/juick-spring-www/src/main/java/com/juick/www/configuration/WwwServletConfiguration.java
+++ /dev/null
@@ -1,157 +0,0 @@
-package com.juick.www.configuration;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
-import com.juick.www.formatter.SpringDateFormatter;
-import nz.net.ultraq.thymeleaf.LayoutDialect;
-import org.apache.commons.lang3.BooleanUtils;
-import org.apache.commons.lang3.CharEncoding;
-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.core.env.Environment;
-import org.springframework.format.FormatterRegistry;
-import org.springframework.http.CacheControl;
-import org.springframework.http.converter.HttpMessageConverter;
-import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
-import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
-import org.springframework.web.multipart.MultipartResolver;
-import org.springframework.web.multipart.commons.CommonsMultipartResolver;
-import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
-import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
-import org.springframework.web.servlet.resource.PathResourceResolver;
-import org.thymeleaf.extras.springsecurity4.dialect.SpringSecurityDialect;
-import org.thymeleaf.spring4.SpringTemplateEngine;
-import org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver;
-import org.thymeleaf.spring4.view.ThymeleafViewResolver;
-import org.thymeleaf.templatemode.TemplateMode;
-
-import javax.annotation.Resource;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-
-/**
- * Created by vitalyster on 28.06.2016.
- */
-@Configuration
-@ComponentScan(basePackages = {"com.juick.www.controllers"})
-@PropertySource("classpath:juick.conf")
-public class WwwServletConfiguration extends WebMvcConfigurationSupport {
- @Resource
- private Environment env;
-
- @Bean
- public SpringResourceTemplateResolver templateResolver() {
- // SpringResourceTemplateResolver automatically integrates with Spring's own
- // resource resolution infrastructure, which is highly recommended.
- SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
- templateResolver.setApplicationContext(getApplicationContext());
- templateResolver.setPrefix("/WEB-INF/templates/");
- templateResolver.setSuffix(".html");
- // HTML is the default value, added here for the sake of clarity.
- templateResolver.setTemplateMode(TemplateMode.HTML);
- // Template cache is true by default. Set to false if you want
- // templates to be automatically updated when modified.
- templateResolver.setCacheable(true);
-
- templateResolver.setCharacterEncoding(CharEncoding.UTF_8);
- return templateResolver;
- }
-
- @Bean
- public SpringTemplateEngine templateEngine() {
- // SpringTemplateEngine automatically applies SpringStandardDialect and
- // enables Spring's own MessageSource message resolution mechanisms.
- SpringTemplateEngine templateEngine = new SpringTemplateEngine();
- templateEngine.setTemplateResolver(templateResolver());
- // Enabling the SpringEL compiler with Spring 4.2.4 or newer can
- // speed up execution in most scenarios, but might be incompatible
- // with specific cases when expressions in one template are reused
- // across different data types, so this flag is "false" by default
- // for safer backwards compatibility.
- templateEngine.setEnableSpringELCompiler(true);
- // Thymeleaf Layout Dialect
- templateEngine.addDialect(new LayoutDialect());
- // Thymeleaf Spring Security integration dialect
- templateEngine.addDialect(new SpringSecurityDialect());
-
- return templateEngine;
- }
-
- @Bean
- public ThymeleafViewResolver viewResolver() {
- ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
- viewResolver.setTemplateEngine(templateEngine());
- viewResolver.setCharacterEncoding(CharEncoding.UTF_8);
-
- viewResolver.addStaticVariable(
- "showSape", BooleanUtils.toBoolean(env.getProperty("template.showSape", "true")));
- viewResolver.addStaticVariable(
- "showAdv", BooleanUtils.toBoolean(env.getProperty("template.showAdv", "true")));
- viewResolver.addStaticVariable(
- "showSponsors", BooleanUtils.toBoolean(env.getProperty("template.showSponsors", "false")));
-
- return viewResolver;
- }
-
- @Override
- protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
- Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder()
- .serializationInclusion(JsonInclude.Include.NON_DEFAULT)
- .serializationInclusion(JsonInclude.Include.NON_NULL)
- .serializationInclusion(JsonInclude.Include.NON_ABSENT)
- .serializationInclusion(JsonInclude.Include.NON_EMPTY);
-
- MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(builder.build());
- converter.getObjectMapper().registerModule(new Jdk8Module());
- converters.add(converter);
-
- super.configureMessageConverters(converters);
- }
-
- @Override
- protected void addResourceHandlers(ResourceHandlerRegistry registry) {
- registry.setOrder(0);
- registry.addResourceHandler(
- "/scripts.js*",
- "/style.css*",
- "/*.png",
- "/favicon.ico")
- .addResourceLocations("/")
- .setCacheControl(CacheControl.maxAge(30, TimeUnit.DAYS))
- .resourceChain(true)
- .addResolver(new PathResourceResolver());
-
- registry.addResourceHandler("/static/**")
- .addResourceLocations("/static/")
- .setCacheControl(CacheControl.maxAge(30, TimeUnit.DAYS));
- }
-
- @Override
- public RequestMappingHandlerMapping requestMappingHandlerMapping() {
- RequestMappingHandlerMapping result = super.requestMappingHandlerMapping();
-
- result.setOrder(1);
-
- return result;
- }
-
- @Override
- public void addFormatters(final FormatterRegistry registry) {
- registry.addFormatter(dateFormatter());
- }
-
- @Bean
- public SpringDateFormatter dateFormatter() {
- return new SpringDateFormatter();
- }
-
- @Bean
- public MultipartResolver multipartResolver() {
- CommonsMultipartResolver resolver = new CommonsMultipartResolver();
- resolver.setMaxUploadSize(10000000);
- return resolver;
- }
-}