diff --git a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/exception/AccessDenyException.java b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/exception/AccessDenyException.java index bb774e45f..7461f4470 100644 --- a/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/exception/AccessDenyException.java +++ b/hsweb-authorization/hsweb-authorization-api/src/main/java/org/hswebframework/web/authorization/exception/AccessDenyException.java @@ -14,11 +14,11 @@ import java.util.Set; * @since 3.0 */ @ResponseStatus(HttpStatus.FORBIDDEN) +@Getter public class AccessDenyException extends I18nSupportException { private static final long serialVersionUID = -5135300127303801430L; - @Getter private String code; public AccessDenyException() { @@ -42,7 +42,42 @@ public class AccessDenyException extends I18nSupportException { } public AccessDenyException(String message, String code, Throwable cause) { - super(message, cause,code); + super(message, cause, code); this.code = code; } + + /** + * 不填充线程栈的异常,在一些对线程栈不敏感,且对异常不可控(如: 来自未认证请求产生的异常)的情况下不填充线程栈对性能有利。 + */ + public static class NoStackTrace extends AccessDenyException { + public NoStackTrace() { + super(); + } + + public NoStackTrace(String message) { + super(message); + } + + public NoStackTrace(String permission, Set actions) { + super(permission, actions); + } + + public NoStackTrace(String message, String code) { + super(message, code); + } + + public NoStackTrace(String message, Throwable cause) { + super(message, cause); + } + + public NoStackTrace(String message, String code, Throwable cause) { + super(message, code, cause); + } + + @Override + public final synchronized Throwable fillInStackTrace() { + return this; + } + } + }