3.6. 在 Elytron 中使用自定义安全事件监听程序
您可以使用 Elytron 定义自定义事件监听程序。自定义事件监听程序处理传入的安全事件。您可以使用事件监听程序进行自定义审计日志记录,也可以使用事件监听程序针对内部身份存储验证用户。
使用 module
管理 CLI 命令添加和删除模块的功能仅作为技术预览功能提供。module
命令不适合在受管域中使用,或者在连接远程管理 CLI 时使用。您必须在生产环境中手动添加或删除模块。
红帽产品服务级别协议(SLA)不支持技术预览功能,且其功能可能并不完善,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
如需有关技术预览功能支持范围的信息,请参阅红帽客户门户网站上的 技术预览功能支持范围。
先决条件
您已保护了应用程序。
如需更多信息,请参阅在 Elytron 中创建一个
aggregate-realm
。
流程
创建一个实施
java.util.function.Consumer<org.wildfly.security.auth.server.event.SecurityEvent>
接口的类。创建使用指定接口的 Java 类示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 当用户成功或失败身份验证时,示例中的 Java 类会打印一条消息。
添加 JAR 文件,它将自定义事件监听程序作为 JBoss EAP 模块提供。
以下是管理 CLI 命令的示例,它将自定义事件监听程序作为模块添加到 Elytron 中。
使用
module
命令将自定义事件监听程序作为模块添加到 Elytron 的示例:/subsystem=elytron/custom-security-event-listener=<listener_name>:add(module=<module_name>, class-name=<class_name>)
/subsystem=elytron/custom-security-event-listener=<listener_name>:add(module=<module_name>, class-name=<class_name>)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 引用安全域中的自定义事件监听程序。
在
ApplicationDomain
中引用自定义事件监听程序的示例:/subsystem=elytron/security-domain=<domain_name>:write-attribute(name=security-event-listener, value=<listener_name>)
/subsystem=elytron/security-domain=<domain_name>:write-attribute(name=security-event-listener, value=<listener_name>)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新启动服务器。
reload
$ reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 事件监听器从指定的安全域接收安全事件。