public class PreviewFilter implements Filter { private static final List<String> KEYS = new ArrayList<>(); static { KEYS.add("notice"); KEYS.add("process"); KEYS.add("work"); KEYS.add("token"); } @Override public void init(FilterConfig filterConfig) { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest; String path = httpServletRequest.getServletPath(); String method = httpServletRequest.getMethod(); String get = "GET"; if (method.equals(get) || KEYS.stream().anyMatch(path::contains)) { filterChain.doFilter(servletRequest, servletResponse); } else { throw new RuntimeException("演示环境暂时无法操作!"); } } @Override public void destroy() { } }
@Configuration public class BladeConfiguration implements WebMvcConfigurer { @Bean public SecureRegistry secureRegistry() { SecureRegistry secureRegistry = new SecureRegistry(); secureRegistry.setEnabled(true); secureRegistry.excludePathPatterns("/blade-auth/**"); secureRegistry.excludePathPatterns("/blade-log/**"); secureRegistry.excludePathPatterns("/blade-system/menu/routes"); secureRegistry.excludePathPatterns("/blade-system/menu/auth-routes"); secureRegistry.excludePathPatterns("/blade-system/menu/top-menu"); secureRegistry.excludePathPatterns("/blade-system/tenant/info"); secureRegistry.excludePathPatterns("/blade-flow/process/resource-view"); secureRegistry.excludePathPatterns("/blade-flow/process/diagram-view"); secureRegistry.excludePathPatterns("/blade-flow/manager/check-upload"); secureRegistry.excludePathPatterns("/doc.html"); secureRegistry.excludePathPatterns("/js/**"); secureRegistry.excludePathPatterns("/webjars/**"); secureRegistry.excludePathPatterns("/swagger-resources/**"); secureRegistry.excludePathPatterns("/druid/**"); return secureRegistry; } @Bean @ConditionalOnProperty(value = "blade.preview.enabled", havingValue = "true") public PreviewFilter previewFilter() { return new PreviewFilter(); } @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/cors/**") .allowedOrigins("*") .allowedHeaders("*") .allowedMethods("*") .maxAge(3600) .allowCredentials(true); } @Bean public Jackson2ObjectMapperBuilderCustomizer builderCustomizer() { DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); DateTimeFormatter dateTimeSerializeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); DateTimeFormatter dateTimeDeserializeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); return builder -> { // 所有Long类型转换成String到前台 builder.serializerByType(Long.class, ToStringSerializer.instance); builder.serializerByType(LocalDateTime.class, new LocalDateSerializer(dateTimeSerializeFormatter)); }; } }
原文:https://www.cnblogs.com/dkws/p/13208108.html