3.6. 在 Elytron 中使用自定义安全事件监听程序


您可以使用 Elytron 定义自定义事件监听程序。自定义事件监听程序处理传入的安全事件。您可以使用事件监听程序进行自定义审计日志记录,也可以使用事件监听程序针对内部身份存储验证用户。

重要

使用 module 管理 CLI 命令添加和删除模块的功能仅作为技术预览功能提供。module 命令不适合在受管域中使用,或者在连接远程管理 CLI 时使用。您必须在生产环境中手动添加或删除模块。

红帽产品服务级别协议(SLA)不支持技术预览功能,且其功能可能并不完善,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

如需有关技术预览功能支持范围的信息,请参阅红帽客户门户网站上的 技术预览功能支持范围

先决条件

流程

  1. 创建一个实施 java.util.function.Consumer<org.wildfly.security.auth.server.event.SecurityEvent> 接口的类。

    创建使用指定接口的 Java 类示例:

    public class MySecurityEventListener implements Consumer<SecurityEvent> {
        public void accept(SecurityEvent securityEvent) {
            if (securityEvent instanceof SecurityAuthenticationSuccessfulEvent) {
                System.err.printf("Authenticated user \"%s\"\n", securityEvent.getSecurityIdentity().getPrincipal());
            } else if (securityEvent instanceof SecurityAuthenticationFailedEvent) {
                System.err.printf("Failed authentication as user \"%s\"\n", ((SecurityAuthenticationFailedEvent)securityEvent).getPrincipal());
            }
        }
    }
    Copy to Clipboard Toggle word wrap

    当用户成功或失败身份验证时,示例中的 Java 类会打印一条消息。

  2. 添加 JAR 文件,它将自定义事件监听程序作为 JBoss EAP 模块提供。

    以下是管理 CLI 命令的示例,它将自定义事件监听程序作为模块添加到 Elytron 中。

    使用 module 命令将自定义事件监听程序作为模块添加到 Elytron 的示例:

    /subsystem=elytron/custom-security-event-listener=<listener_name>:add(module=<module_name>, class-name=<class_name>)
    Copy to Clipboard Toggle word wrap

  3. 引用安全域中的自定义事件监听程序。

    ApplicationDomain 中引用自定义事件监听程序的示例:

    /subsystem=elytron/security-domain=<domain_name>:write-attribute(name=security-event-listener, value=<listener_name>)
    Copy to Clipboard Toggle word wrap

  4. 重新启动服务器。

    $ reload
    Copy to Clipboard Toggle word wrap

    事件监听器从指定的安全域接收安全事件。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat