/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.springblade.common.config; import org.springblade.common.filter.PreviewFilter; import org.springblade.core.secure.registry.SecureRegistry; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.web.cors.reactive.CorsUtils; import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebFilter; import org.springframework.web.server.WebFilterChain; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import reactor.core.publisher.Mono; /** * Blade配置 * * @author Chill */ @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/ss"); 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/**"); secureRegistry.excludePathPatterns("/equipment/equipment/**"); secureRegistry.excludePathPatterns("/jingdan/jingdan/**"); secureRegistry.excludePathPatterns("/suser/suser/**"); secureRegistry.excludePathPatterns("/alarm/alarm/**"); secureRegistry.excludePathPatterns("/district/district/**"); secureRegistry.excludePathPatterns("/catalogs/catalogs/**"); secureRegistry.excludePathPatterns("/position/position/**"); secureRegistry.excludePathPatterns("/deploy/deploy/**"); secureRegistry.excludePathPatterns("/healthcode/healthcode/**"); secureRegistry.excludePathPatterns("/feedback/feedback/**"); secureRegistry.excludePathPatterns("/netty/netty/**"); secureRegistry.excludePathPatterns("/regions/regions/**"); secureRegistry.excludePathPatterns("/position/position/**"); secureRegistry.excludePathPatterns("/street/street/**"); secureRegistry.excludePathPatterns("/lx/lx/**"); secureRegistry.excludePathPatterns("/dj/dj/**"); secureRegistry.excludePathPatterns("/trajectory/trajectory/**"); secureRegistry.excludePathPatterns("/security/security/**"); secureRegistry.excludePathPatterns("/enclosure/enclosure/**"); secureRegistry.excludePathPatterns("/routeIn/routein/**"); secureRegistry.excludePathPatterns("/duty/duty/**"); secureRegistry.excludePathPatterns("/xlfeedback/xlfeedback/**"); secureRegistry.excludePathPatterns("/blade-user/**"); secureRegistry.excludePathPatterns("/task/task/**"); secureRegistry.excludePathPatterns("/visitrecord/visitrecord/**"); secureRegistry.excludePathPatterns("/reported/reported/**"); secureRegistry.excludePathPatterns("/survey/survey/**"); 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); } }