抛出异常时停止休眠抛出敏感数据

时间:2021-07-09 18:51:56

标签: spring-boot hibernate jpa spring-data-jpa log4j2

我是 Hibernate 的新手,我在我的应用程序中使用 JPA +Hibernate + Spring Boot。正在使用 log4j2 处理日志记录。当我的应用程序正确抛出异常(在我的情况下是 DataIntegrityViolationException 或 EntityExistsException)时,Hibernate 正在使用 stackTrace 记录异常。这很好,因为它有助于调试。但是,它还会记录我不希望出现在日志中的应用程序敏感数据。属性文件中是否有可以设置或修改的设置来防止这种情况发生。我不想在我的 log4j2.xml 中为 hibernate 创建一个 appender,并在最终日志中屏蔽特定的词。

1 个答案:

答案 0 :(得分:0)

您可以在 spring boot 中添加全局异常,并且您只能按照本教程记录异常消息 - https://www.studytonight.com/spring-boot/spring-boot-global-exception-handling

或者,您可以为每个调用执行一些 try catch 并使用自定义消息抛出异常,如下所示。

Try {
  //call
} catch (Exception ex){
   throws CustomizedRunTimeException(“yourMessage”)

}

类如下

public class CustomizedRunTimeException extends RunTimeException { 
    public CustomizedRunTimeException(String errorMessage) {
        super(errorMessage);
    }
}