/* * JBoss, Home of Professional Open Source. * Copyright 2017 Red Hat, Inc., and individual contributors * as indicated by the @author tags. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.wildfly.security.audit; import static org.junit.Assert.assertTrue; import java.io.FilePermission; import org.junit.BeforeClass; import org.junit.Test; import org.wildfly.security.auth.realm.SimpleMapBackedSecurityRealm; import org.wildfly.security.auth.server.SecurityDomain; import org.wildfly.security.auth.server.event.SecurityAuthenticationSuccessfulEvent; import org.wildfly.security.auth.server.event.SecurityEvent; import org.wildfly.security.auth.server.event.SecurityEventVisitor; import org.wildfly.security.auth.server.event.SecurityPermissionCheckFailedEvent; /** * Test case to test the SimpleSecurityEventFormatter * * @author <a href="mailto:darran.lofthouse@jboss.com">Darran Lofthouse</a> */ public class SimpleSecurityEventFormatterTest { private static SecurityEventVisitor<?, String> simpleFormatter; private static SecurityDomain securityDomain; @BeforeClass public static void createDomain() { simpleFormatter = SimpleSecurityEventFormatter.builder().build(); securityDomain = SecurityDomain.builder() .addRealm("Simple", new SimpleMapBackedSecurityRealm()).build() .setDefaultRealmName("Simple") .build(); } private String baseTest(SecurityEvent event) { String formatted = event.accept(simpleFormatter, null); System.out.println(formatted); assertTrue("Event Time", formatted.contains("event-time=")); assertTrue("Security Identity", formatted.contains("security-identity=")); assertTrue("Identity Name", formatted.contains("name=anonymous")); assertTrue("Identity Creation Time", formatted.contains("creation-time=")); return formatted; } @Test public void testAuthenticationSuccessful() { String formatted = baseTest(new SecurityAuthenticationSuccessfulEvent(securityDomain.getCurrentSecurityIdentity())); assertTrue("Event", formatted.contains("event=SecurityAuthenticationSuccessfulEvent")); assertTrue("Success", formatted.contains("success=true")); } @Test public void testPermissionCheckFailed() { String formatted = baseTest(new SecurityPermissionCheckFailedEvent(securityDomain.getCurrentSecurityIdentity(), new FilePermission("/etc", "read"))); assertTrue("Event", formatted.contains("event=SecurityPermissionCheckFailedEvent")); assertTrue("Success", formatted.contains("success=false")); assertTrue("Permission", formatted.contains("permission=")); assertTrue("Permission Type", formatted.contains("type=java.io.FilePermission")); assertTrue("Permission Actions", formatted.contains("actions=read")); assertTrue("Permission Name", formatted.contains("name=/etc")); } }