HttpRequestMethodNotSupportedExceptionResolver.java
package cn.home1.oss.lib.errorhandle.internal.resolver;
import static org.springframework.util.ObjectUtils.isEmpty;
import cn.home1.oss.lib.errorhandle.api.AbstractConcreteExceptionResolver;
import org.springframework.http.HttpHeaders;
import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.context.request.RequestAttributes;
import java.util.Optional;
public class HttpRequestMethodNotSupportedExceptionResolver
extends AbstractConcreteExceptionResolver<HttpRequestMethodNotSupportedException> {
@Override
public Optional<HttpHeaders> createHeaders( //
final RequestAttributes requestAttributes, //
final HttpRequestMethodNotSupportedException exception //
) {
final HttpHeaders headers = super.createHeaders(requestAttributes, exception).orElse(new HttpHeaders());
if (!isEmpty(exception.getSupportedMethods())) {
headers.setAllow(exception.getSupportedHttpMethods());
}
return !headers.isEmpty() ? Optional.of(headers) : Optional.empty();
}
}