|
@@ -14,6 +14,7 @@
|
|
|
* See the License for the specific language governing permissions and
|
|
|
* limitations under the License.
|
|
|
*/
|
|
|
+
|
|
|
package org.apache.dolphinscheduler.api.configuration;
|
|
|
|
|
|
import org.apache.dolphinscheduler.api.interceptor.LoginHandlerInterceptor;
|
|
@@ -33,85 +34,78 @@ import java.util.Locale;
|
|
|
@Configuration
|
|
|
public class AppConfiguration implements WebMvcConfigurer {
|
|
|
|
|
|
- public static final String LOGIN_INTERCEPTOR_PATH_PATTERN = "/**/*";
|
|
|
- public static final String LOGIN_PATH_PATTERN = "/login";
|
|
|
- public static final String REGISTER_PATH_PATTERN = "/users/register";
|
|
|
- public static final String PATH_PATTERN = "/**";
|
|
|
- public static final String LOCALE_LANGUAGE_COOKIE = "language";
|
|
|
- public static final int COOKIE_MAX_AGE = 3600;
|
|
|
-
|
|
|
-
|
|
|
- @Bean
|
|
|
- public LoginHandlerInterceptor loginInterceptor() {
|
|
|
- return new LoginHandlerInterceptor();
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * Cookie
|
|
|
- * @return local resolver
|
|
|
- */
|
|
|
- @Bean(name = "localeResolver")
|
|
|
- public LocaleResolver localeResolver() {
|
|
|
- CookieLocaleResolver localeResolver = new CookieLocaleResolver();
|
|
|
- localeResolver.setCookieName(LOCALE_LANGUAGE_COOKIE);
|
|
|
- /** set default locale **/
|
|
|
- localeResolver.setDefaultLocale(Locale.US);
|
|
|
- /** set cookie max age **/
|
|
|
- localeResolver.setCookieMaxAge(COOKIE_MAX_AGE);
|
|
|
- return localeResolver;
|
|
|
- }
|
|
|
-
|
|
|
- @Bean
|
|
|
- public LocaleChangeInterceptor localeChangeInterceptor() {
|
|
|
- LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
|
|
|
- /** **/
|
|
|
- lci.setParamName("language");
|
|
|
-
|
|
|
- return lci;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- @Override
|
|
|
- public void addInterceptors(InterceptorRegistry registry) {
|
|
|
- //i18n
|
|
|
- registry.addInterceptor(localeChangeInterceptor());
|
|
|
-
|
|
|
- registry.addInterceptor(loginInterceptor()).addPathPatterns(LOGIN_INTERCEPTOR_PATH_PATTERN).excludePathPatterns(LOGIN_PATH_PATTERN, REGISTER_PATH_PATTERN, "/swagger-resources/**", "/webjars/**", "/v2/**", "/doc.html", "*.html", "/ui/**");
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- @Override
|
|
|
- public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
|
|
- registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
|
|
|
- registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
|
|
|
- registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
|
|
|
- registry.addResourceHandler("/ui/**").addResourceLocations("file:ui/");
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void addViewControllers(ViewControllerRegistry registry) {
|
|
|
- registry.addViewController("/ui/").setViewName("forward:/ui/index.html");
|
|
|
- registry.addViewController("/").setViewName("forward:/ui/index.html");
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void addCorsMappings(CorsRegistry registry) {
|
|
|
- registry.addMapping(PATH_PATTERN).allowedOrigins("*").allowedMethods("*");
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * Turn off suffix-based content negotiation
|
|
|
- *
|
|
|
- * @param configurer configurer
|
|
|
- */
|
|
|
- @Override
|
|
|
- public void configureContentNegotiation(final ContentNegotiationConfigurer configurer) {
|
|
|
- configurer.favorPathExtension(false);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ public static final String LOGIN_INTERCEPTOR_PATH_PATTERN = "/**/*";
|
|
|
+ public static final String LOGIN_PATH_PATTERN = "/login";
|
|
|
+ public static final String REGISTER_PATH_PATTERN = "/users/register";
|
|
|
+ public static final String PATH_PATTERN = "/**";
|
|
|
+ public static final String LOCALE_LANGUAGE_COOKIE = "language";
|
|
|
+ public static final int COOKIE_MAX_AGE = 3600;
|
|
|
+
|
|
|
+ @Bean
|
|
|
+ public LoginHandlerInterceptor loginInterceptor() {
|
|
|
+ return new LoginHandlerInterceptor();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Cookie
|
|
|
+ * @return local resolver
|
|
|
+ */
|
|
|
+ @Bean(name = "localeResolver")
|
|
|
+ public LocaleResolver localeResolver() {
|
|
|
+ CookieLocaleResolver localeResolver = new CookieLocaleResolver();
|
|
|
+ localeResolver.setCookieName(LOCALE_LANGUAGE_COOKIE);
|
|
|
+ // set default locale
|
|
|
+ localeResolver.setDefaultLocale(Locale.US);
|
|
|
+ // set cookie max age
|
|
|
+ localeResolver.setCookieMaxAge(COOKIE_MAX_AGE);
|
|
|
+ return localeResolver;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Bean
|
|
|
+ public LocaleChangeInterceptor localeChangeInterceptor() {
|
|
|
+ LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
|
|
|
+ lci.setParamName("language");
|
|
|
+ return lci;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void addInterceptors(InterceptorRegistry registry) {
|
|
|
+ // i18n
|
|
|
+ registry.addInterceptor(localeChangeInterceptor());
|
|
|
+ registry.addInterceptor(loginInterceptor())
|
|
|
+ .addPathPatterns(LOGIN_INTERCEPTOR_PATH_PATTERN)
|
|
|
+ .excludePathPatterns(LOGIN_PATH_PATTERN, REGISTER_PATH_PATTERN,
|
|
|
+ "/swagger-resources/**", "/webjars/**", "/v2/**",
|
|
|
+ "/doc.html", "/swagger-ui.html", "*.html", "/ui/**");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
|
|
+ registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
|
|
|
+ registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
|
|
|
+ registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
|
|
|
+ registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
|
|
|
+ registry.addResourceHandler("/ui/**").addResourceLocations("file:ui/");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void addViewControllers(ViewControllerRegistry registry) {
|
|
|
+ registry.addViewController("/ui/").setViewName("forward:/ui/index.html");
|
|
|
+ registry.addViewController("/").setViewName("forward:/ui/index.html");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void addCorsMappings(CorsRegistry registry) {
|
|
|
+ registry.addMapping(PATH_PATTERN).allowedOrigins("*").allowedMethods("*");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Turn off suffix-based content negotiation
|
|
|
+ *
|
|
|
+ * @param configurer configurer
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void configureContentNegotiation(final ContentNegotiationConfigurer configurer) {
|
|
|
+ configurer.favorPathExtension(false);
|
|
|
+ }
|
|
|
}
|