use of cn.taketoday.web.interceptor.CorsHandlerInterceptor in project today-framework by TAKETODAY.
the class HandlerCorsCustomizer method customize.
@Override
public Object customize(ActionMappingAnnotationHandler handler) {
// 预防已经设置
HandlerInterceptor[] interceptors = handler.getInterceptors();
if (ObjectUtils.isNotEmpty(interceptors)) {
for (HandlerInterceptor interceptor : interceptors) {
if (interceptor instanceof CorsHandlerInterceptor) {
return handler;
}
}
}
CrossOrigin methodCrossOrigin = handler.getMethod().getMethodAnnotation(CrossOrigin.class);
CrossOrigin classCrossOrigin = handler.getMethod().getDeclaringClassAnnotation(CrossOrigin.class);
if (classCrossOrigin == null && methodCrossOrigin == null) {
// 没有 @CrossOrigin 配置
return handler;
}
CorsConfiguration config = new CorsConfiguration();
updateCorsConfig(config, classCrossOrigin);
updateCorsConfig(config, methodCrossOrigin);
// 覆盖默认
config.applyPermitDefaultValues();
CorsHandlerInterceptor interceptor = new CorsHandlerInterceptor(config);
interceptor.setCorsProcessor(processor);
interceptor.setOrder(Ordered.HIGHEST_PRECEDENCE);
handler.addInterceptors(interceptor);
return handler;
}
use of cn.taketoday.web.interceptor.CorsHandlerInterceptor in project today-infrastructure by TAKETODAY.
the class HandlerCorsCustomizer method customize.
@Override
public Object customize(ActionMappingAnnotationHandler handler) {
// 预防已经设置
HandlerInterceptor[] interceptors = handler.getInterceptors();
if (ObjectUtils.isNotEmpty(interceptors)) {
for (HandlerInterceptor interceptor : interceptors) {
if (interceptor instanceof CorsHandlerInterceptor) {
return handler;
}
}
}
CrossOrigin methodCrossOrigin = handler.getMethod().getMethodAnnotation(CrossOrigin.class);
CrossOrigin classCrossOrigin = handler.getMethod().getDeclaringClassAnnotation(CrossOrigin.class);
if (classCrossOrigin == null && methodCrossOrigin == null) {
// 没有 @CrossOrigin 配置
return handler;
}
CorsConfiguration config = new CorsConfiguration();
updateCorsConfig(config, classCrossOrigin);
updateCorsConfig(config, methodCrossOrigin);
// 覆盖默认
config.applyPermitDefaultValues();
CorsHandlerInterceptor interceptor = new CorsHandlerInterceptor(config);
interceptor.setCorsProcessor(processor);
interceptor.setOrder(Ordered.HIGHEST_PRECEDENCE);
handler.addInterceptors(interceptor);
return handler;
}
Aggregations