/* * Copyright 2015-2017 EuregJUG. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package eu.euregjug.site.config; import eu.euregjug.site.support.thymeleaf.EuregJUGDialect; import java.time.Duration; import java.util.Locale; import java.util.TimeZone; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.LocaleResolver; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.i18n.CookieLocaleResolver; import org.springframework.web.servlet.i18n.LocaleChangeInterceptor; /** * @author Michael J. Simons, 2015-12-27 */ @Configuration public class WebConfig extends WebMvcConfigurerAdapter { @Override public void addViewControllers(final ViewControllerRegistry registry) { registry.addViewController("/about").setViewName("about"); } @Bean public EuregJUGDialect enSupplyDialect() { return new EuregJUGDialect(); } @Bean public LocaleResolver localeResolver() { final CookieLocaleResolver rv = new CookieLocaleResolver(); rv.setDefaultLocale(Locale.ENGLISH); rv.setDefaultTimeZone(TimeZone.getTimeZone("Europe/Berlin")); rv.setLanguageTagCompliant(true); rv.setCookieMaxAge((int) Duration.ofDays(365).getSeconds()); return rv; } @Override public void addInterceptors(final InterceptorRegistry registry) { final LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor(); localeChangeInterceptor.setParamName("lang"); registry.addInterceptor(localeChangeInterceptor); } @Override public void addCorsMappings(final CorsRegistry registry) { registry.addMapping("/api/**").allowedOrigins("*"); } }