From 2aed8345f39fb78766ffa9dc3043bcf1b2c15f5d Mon Sep 17 00:00:00 2001 From: zhouhao Date: Wed, 22 May 2024 16:15:52 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=A2=9E=E5=8A=A0AccessDenyExcepti?= =?UTF-8?q?on#NoStackTrace?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exception/AccessDenyException.java | 39 ++++++++++++++++++- 1 file changed, 37 insertions(+), 2 deletions(-) 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; + } + } + }