spring security core plugin 4.0.3 记录失败的尝试

spring security core plugin 4.0.3 recording the failed attempts

我正在使用 Grails 4.0.9spring security core grails plugin 4.0.3,我搜索了一种方法来捕获用户失败和成功的登录尝试,但我没有找到任何东西,有没有办法做到这一点?

您可以注册 ApplicationListener 来侦听 AbstractAuthenticationFailureEvent 以处理失败的尝试,并在 grails-app/conf/spring/resources.groovy 中注册相同的内容。如:

package com.objectcomputing.example

import groovy.transform.CompileStatic
import groovy.util.logging.Slf4j
import org.springframework.context.ApplicationListener
import org.springframework.security.authentication.event.AbstractAuthenticationFailureEvent

@Slf4j
@CompileStatic
class LoginFailedAuthEventListener implements ApplicationListener<AbstractAuthenticationFailureEvent> {

    @Override
    void onApplicationEvent(AbstractAuthenticationFailureEvent event) {
        final Object username = event.authentication.principal
        log.warn("Failed login attempt for username {}", username)
    }
}

https://grails-plugins.github.io/grails-spring-security-core/4.0.x/index.html#registeringEventListener

阅读更多信息

请注意上面的监听器非常基础,它只记录信息,但你可以写任何你需要做的事情。

示例应用程序:https://github.com/puneetbehl/grails-spring-security-demo