4.6. Elytron에서 사용자 정의 보안 이벤트 리스너 사용
Elytron을 사용하여 사용자 지정 이벤트 리스너를 정의할 수 있습니다. 사용자 정의 이벤트 리스너는 들어오는 보안 이벤트를 처리합니다. 사용자 정의 감사 로깅 목적으로 이벤트 리스너를 사용하거나 이벤트 리스너를 사용하여 내부 ID 스토리지에 대해 사용자를 인증할 수 있습니다.
모듈 관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 기능은 기술 프리뷰 기능으로만 제공됩니다. module 명령은 관리형 도메인에서 또는 원격 관리 CLI와 연결할 때 사용하기에 적합하지 않습니다. 프로덕션 환경에서 모듈을 수동으로 추가하거나 제거해야 합니다.
기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있으며 프로덕션에 사용하지 않는 것이 좋습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
기술 프리뷰 기능에 대한 지원 범위에 대한 정보는 Red Hat 고객 포털에서 기술 프리뷰 기능 지원 범위를 참조하십시오.
사전 요구 사항
애플리케이션을 보호했습니다.
자세한 내용은 Elytron에서
파일 시스템생성 을 참조하십시오.
프로세스
java.util.function.Consumer<org.wildfly.security.auth.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()); } } }예제의 Java 클래스는 사용자가 인증에 성공하거나 실패할 때마다 메시지를 출력합니다.
사용자 지정 이벤트 리스너를 JBoss EAP에 모듈로 제공하는 JAR 파일을 추가합니다.
다음은 사용자 정의 이벤트 리스너를 Elytron에 모듈로 추가하는 관리 CLI 명령의 예입니다.
모듈명령을 사용하여 사용자 지정 이벤트 리스너를 Elytron에 모듈로 추가하는 예제입니다./subsystem=elytron/custom-security-event-listener=<listener_name>:add(module=<module_name>, class-name=<class_name>)보안 도메인의 사용자 지정 이벤트 리스너를 참조합니다.
ApplicationDomain에서 사용자 지정 이벤트 리스너를 참조하는 예:/subsystem=elytron/security-domain=<domain_name>:write-attribute(name=security-event-listener, value=<listener_name>)서버를 다시 시작합니다.
$ reload이벤트 리스너는 지정된 보안 도메인에서 보안 이벤트를 수신합니다.