spring-security 是否将Spring Security配置为仅记录异常而不记录Stacktrace?

bweufnob  于 2022-11-11  发布在  Spring
关注(0)|答案(1)|浏览(159)

我喜欢Spring Security记录正在发生的事情,所以

logging.level.org.springframework.security=debug

已启用。
但是,当用户使用错误的凭据或未激活时,每次都会记录一个异常,其中包含大约50行(无用的)Stacktrace。
我只想得到例外

org.springframework.security.authentication.DisabledException: User is disabled

如果记录级别设置为info,则在尝试记录日志时不会记录日志。
这可能吗?-完全不禁用异常

9njqaruj

9njqaruj1#

您可以使用类似于

@Component
public class AuthenticationEventListener implements ApplicationListener<AbstractAuthenticationEvent> {
    @Override
    public void onApplicationEvent(AbstractAuthenticationEvent authenticationEvent) {
        Logger logger = LoggerFactory.getLogger(LoggingController.class);
        if (authenticationEvent instanceof InteractiveAuthenticationSuccessEvent) {
            // ignores to prevent duplicate logging with AuthenticationSuccessEvent
            return;
        }
        Authentication authentication = authenticationEvent.getAuthentication();
        String auditMessage = "Login attempt with username: " + authentication.getName() + "\t\tSuccess: " + authentication.isAuthenticated();
        logger.info(auditMessage);
    }
}

不需要其他配置。
说明:它将记录您的身份验证

相关问题