http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UnauthorizedEventCreator.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UnauthorizedEventCreator.java b/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UnauthorizedEventCreator.java deleted file mode 100644 index e6ecc45..0000000 --- a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UnauthorizedEventCreator.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.ambari.server.audit.request.eventcreator; - -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; - -import org.apache.ambari.server.api.services.Request; -import org.apache.ambari.server.api.services.Result; -import org.apache.ambari.server.api.services.ResultStatus; -import org.apache.ambari.server.audit.AccessUnauthorizedAuditEvent; -import org.apache.ambari.server.audit.AuditEvent; -import org.apache.ambari.server.audit.request.RequestAuditEventCreator; -import org.apache.ambari.server.controller.spi.Resource; -import org.joda.time.DateTime; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.User; - -public class UnauthorizedEventCreator implements RequestAuditEventCreator{ - - @Override - public Set<Request.Type> getRequestTypes() { - return null; - } - - @Override - public Set<Resource.Type> getResourceTypes() { - return null; - } - - private Set<ResultStatus.STATUS> statuses = new HashSet<>(); - - { - statuses.add(ResultStatus.STATUS.UNAUTHORIZED); - statuses.add(ResultStatus.STATUS.FORBIDDEN); - } - - @Override - public Set<ResultStatus.STATUS> getResultStatuses() { - return statuses; - } - - @Override - public AuditEvent createAuditEvent(Request request, Result result) { - - String username = ((User) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUsername(); - AccessUnauthorizedAuditEvent ae = AccessUnauthorizedAuditEvent.builder() - .withRemoteIp(request.getRemoteAddress()) - .withResourcePath(request.getURI()) - .withTimestamp(DateTime.now()) - .withUserName(username) - .build(); - - return ae; - } -}
http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UpgradeEventCreator.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UpgradeEventCreator.java b/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UpgradeEventCreator.java deleted file mode 100644 index 88ec5b0..0000000 --- a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UpgradeEventCreator.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.ambari.server.audit.request.eventcreator; - -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import org.apache.ambari.server.api.services.Request; -import org.apache.ambari.server.api.services.Result; -import org.apache.ambari.server.api.services.ResultStatus; -import org.apache.ambari.server.audit.AuditEvent; -import org.apache.ambari.server.audit.request.RequestAuditEventCreator; -import org.apache.ambari.server.audit.request.event.AddAlertGroupRequestAuditEvent; -import org.apache.ambari.server.audit.request.event.AddUpgradeRequestAuditEvent; -import org.apache.ambari.server.audit.request.event.ChangeAlertGroupRequestAuditEvent; -import org.apache.ambari.server.audit.request.event.DeleteAlertGroupRequestAuditEvent; -import org.apache.ambari.server.controller.spi.Resource; -import org.apache.ambari.server.controller.utilities.PropertyHelper; -import org.joda.time.DateTime; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.User; - -/** - * This creator handles upgrade requests - * For resource type {@link Resource.Type#Upgrade} - * and request types {@link Request.Type#POST} - */ -public class UpgradeEventCreator implements RequestAuditEventCreator { - - /** - * Set of {@link Request.Type}s that are handled by this plugin - */ - private Set<Request.Type> requestTypes = new HashSet<Request.Type>(); - - { - requestTypes.add(Request.Type.POST); - } - - /** - * {@inheritDoc} - */ - @Override - public Set<Request.Type> getRequestTypes() { - return requestTypes; - } - - /** - * {@inheritDoc} - */ - @Override - public Set<Resource.Type> getResourceTypes() { - return Collections.singleton(Resource.Type.Upgrade); - } - - /** - * {@inheritDoc} - */ - @Override - public Set<ResultStatus.STATUS> getResultStatuses() { - return null; - } - - @Override - public AuditEvent createAuditEvent(Request request, Result result) { - String username = ((User) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUsername(); - - return AddUpgradeRequestAuditEvent.builder() - .withTimestamp(DateTime.now()) - .withRequestType(request.getRequestType()) - .withResultStatus(result.getStatus()) - .withUrl(request.getURI()) - .withRemoteIp(request.getRemoteAddress()) - .withUserName(username) - .withRepositoryVersion(getProperty(request, "repository_version")) - .withUpgradeType(getProperty(request, "upgrade_type")) - .withClusterName(getProperty(request, "cluster_name")) - .build(); - - } - - private String getProperty(Request request, String propertyName) { - if(!request.getBody().getPropertySets().isEmpty()) { - return String.valueOf(request.getBody().getPropertySets().iterator().next().get(PropertyHelper.getPropertyId("Upgrade",propertyName))); - } - return null; - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UpgradeItemEventCreator.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UpgradeItemEventCreator.java b/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UpgradeItemEventCreator.java deleted file mode 100644 index 6118dad..0000000 --- a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UpgradeItemEventCreator.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.ambari.server.audit.request.eventcreator; - -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; - -import org.apache.ambari.server.api.services.Request; -import org.apache.ambari.server.api.services.Result; -import org.apache.ambari.server.api.services.ResultStatus; -import org.apache.ambari.server.audit.AuditEvent; -import org.apache.ambari.server.audit.request.RequestAuditEventCreator; -import org.apache.ambari.server.audit.request.event.AddUpgradeRequestAuditEvent; -import org.apache.ambari.server.audit.request.event.UpdateUpgradeItemRequestAuditEvent; -import org.apache.ambari.server.controller.spi.Resource; -import org.apache.ambari.server.controller.utilities.PropertyHelper; -import org.joda.time.DateTime; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.User; - -/** - * This creator handles upgrade requests - * For resource type {@link Resource.Type#Upgrade} - * and request types {@link Request.Type#PUT} - */ -public class UpgradeItemEventCreator implements RequestAuditEventCreator { - - /** - * Set of {@link Request.Type}s that are handled by this plugin - */ - private Set<Request.Type> requestTypes = new HashSet<Request.Type>(); - - { - requestTypes.add(Request.Type.PUT); - } - - /** - * {@inheritDoc} - */ - @Override - public Set<Request.Type> getRequestTypes() { - return requestTypes; - } - - /** - * {@inheritDoc} - */ - @Override - public Set<Resource.Type> getResourceTypes() { - return Collections.singleton(Resource.Type.UpgradeItem); - } - - /** - * {@inheritDoc} - */ - @Override - public Set<ResultStatus.STATUS> getResultStatuses() { - return null; - } - - @Override - public AuditEvent createAuditEvent(Request request, Result result) { - String username = ((User) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUsername(); - - return UpdateUpgradeItemRequestAuditEvent.builder() - .withTimestamp(DateTime.now()) - .withRequestType(request.getRequestType()) - .withResultStatus(result.getStatus()) - .withUrl(request.getURI()) - .withRemoteIp(request.getRemoteAddress()) - .withUserName(username) - .withStatus(getProperty(request, "status")) - .withStageId(getProperty(request, "stage_id")) - .withRequestId(getProperty(request, "request_id")) - .build(); - - } - - private String getProperty(Request request, String propertyName) { - if(!request.getBody().getPropertySets().isEmpty()) { - return String.valueOf(request.getBody().getPropertySets().iterator().next().get(PropertyHelper.getPropertyId("UpgradeItem",propertyName))); - } - return null; - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UserEventCreator.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UserEventCreator.java b/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UserEventCreator.java deleted file mode 100644 index e8386c8..0000000 --- a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/UserEventCreator.java +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.ambari.server.audit.request.eventcreator; - -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; - -import org.apache.ambari.server.api.services.Request; -import org.apache.ambari.server.api.services.Result; -import org.apache.ambari.server.api.services.ResultStatus; -import org.apache.ambari.server.audit.AuditEvent; -import org.apache.ambari.server.audit.request.event.ActivateUserRequestAuditEvent; -import org.apache.ambari.server.audit.request.event.AdminUserRequestAuditEvent; -import org.apache.ambari.server.audit.request.event.CreateUserRequestAuditEvent; -import org.apache.ambari.server.audit.request.event.DeleteUserRequestAuditEvent; -import org.apache.ambari.server.audit.request.RequestAuditEventCreator; -import org.apache.ambari.server.audit.request.event.UserPasswordChangeRequestAuditEvent; -import org.apache.ambari.server.controller.spi.Resource; -import org.apache.ambari.server.controller.utilities.PropertyHelper; -import org.joda.time.DateTime; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.User; - -/** - * This creator handles user requests - * For resource type {@link Resource.Type#User} - * and request types {@link Request.Type#POST}, {@link Request.Type#PUT} and {@link Request.Type#DELETE} - */ -public class UserEventCreator implements RequestAuditEventCreator { - - /** - * Set of {@link Request.Type}s that are handled by this plugin - */ - private Set<Request.Type> requestTypes = new HashSet<Request.Type>(); - - { - requestTypes.add(Request.Type.POST); - requestTypes.add(Request.Type.PUT); - requestTypes.add(Request.Type.DELETE); - } - - /** - * {@inheritDoc} - */ - @Override - public Set<Request.Type> getRequestTypes() { - return requestTypes; - } - - /** - * {@inheritDoc} - */ - @Override - public Set<Resource.Type> getResourceTypes() { - return Collections.singleton(Resource.Type.User); - } - - /** - * {@inheritDoc} - */ - @Override - public Set<ResultStatus.STATUS> getResultStatuses() { - return null; - } - - @Override - public AuditEvent createAuditEvent(Request request, Result result) { - String username = ((User) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUsername(); - - switch(request.getRequestType()) { - case POST: - return CreateUserRequestAuditEvent.builder() - .withTimestamp(DateTime.now()) - .withRequestType(request.getRequestType()) - .withResultStatus(result.getStatus()) - .withUrl(request.getURI()) - .withRemoteIp(request.getRemoteAddress()) - .withUserName(username) - .withCreatedUsername(getUsername(request)) - .withActive(isActive(request)) - .withAdmin(isAdmin(request)) - .build(); - case DELETE: - return DeleteUserRequestAuditEvent.builder() - .withTimestamp(DateTime.now()) - .withRequestType(request.getRequestType()) - .withResultStatus(result.getStatus()) - .withUrl(request.getURI()) - .withRemoteIp(request.getRemoteAddress()) - .withUserName(username) - .withDeletedUsername(request.getResource().getKeyValueMap().get(Resource.Type.User)) - .build(); - case PUT: - if(hasActive(request)) { - return ActivateUserRequestAuditEvent.builder() - .withTimestamp(DateTime.now()) - .withRequestType(request.getRequestType()) - .withResultStatus(result.getStatus()) - .withUrl(request.getURI()) - .withRemoteIp(request.getRemoteAddress()) - .withUserName(username) - .withAffectedUsername(getUsername(request)) - .withActive(isActive(request)) - .build(); - } - if(hasAdmin(request)) { - return AdminUserRequestAuditEvent.builder() - .withTimestamp(DateTime.now()) - .withRequestType(request.getRequestType()) - .withResultStatus(result.getStatus()) - .withUrl(request.getURI()) - .withRemoteIp(request.getRemoteAddress()) - .withUserName(username) - .withAffectedUsername(getUsername(request)) - .withAdmin(isAdmin(request)) - .build(); - } - if(hasOldPassword(request)) { - return UserPasswordChangeRequestAuditEvent.builder() - .withTimestamp(DateTime.now()) - .withRequestType(request.getRequestType()) - .withResultStatus(result.getStatus()) - .withUrl(request.getURI()) - .withRemoteIp(request.getRemoteAddress()) - .withUserName(username) - .withAffectedUsername(getUsername(request)) - .build(); - } - default: - break; - } - return null; - } - - - private boolean isAdmin(Request request) { - return hasAdmin(request) && "true".equals(request.getBody().getPropertySets().iterator().next().get(PropertyHelper.getPropertyId("Users", "admin"))); - } - - private boolean isActive(Request request) { - return hasActive(request) && "true".equals(request.getBody().getPropertySets().iterator().next().get(PropertyHelper.getPropertyId("Users", "active"))); - } - - private boolean hasAdmin(Request request) { - return !request.getBody().getPropertySets().isEmpty() && request.getBody().getPropertySets().iterator().next().containsKey(PropertyHelper.getPropertyId("Users", "admin")); - } - - private boolean hasActive(Request request) { - return !request.getBody().getPropertySets().isEmpty() && request.getBody().getPropertySets().iterator().next().containsKey(PropertyHelper.getPropertyId("Users", "active")); - } - - private boolean hasOldPassword(Request request) { - return !request.getBody().getPropertySets().isEmpty() && request.getBody().getPropertySets().iterator().next().containsKey(PropertyHelper.getPropertyId("Users", "old_password")); - } - - private String getUsername(Request request) { - if(!request.getBody().getPropertySets().isEmpty()) { - return String.valueOf(request.getBody().getPropertySets().iterator().next().get(PropertyHelper.getPropertyId("Users", "user_name"))); - } - return null; - } - -} http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ValidationIgnoreEventCreator.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ValidationIgnoreEventCreator.java b/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ValidationIgnoreEventCreator.java deleted file mode 100644 index e52aa10..0000000 --- a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ValidationIgnoreEventCreator.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.ambari.server.audit.request.eventcreator; - -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; - -import org.apache.ambari.server.api.services.Request; -import org.apache.ambari.server.api.services.Result; -import org.apache.ambari.server.api.services.ResultStatus; -import org.apache.ambari.server.audit.AuditEvent; -import org.apache.ambari.server.audit.request.RequestAuditEventCreator; -import org.apache.ambari.server.controller.spi.Resource; - -/** - * This creator ignores validation post requests - * For resource type {@link Resource.Type#Validation} - * and request types {@link Request.Type#POST} - */ -public class ValidationIgnoreEventCreator implements RequestAuditEventCreator { - - /** - * Set of {@link Request.Type}s that are handled by this plugin - */ - private Set<Request.Type> requestTypes = new HashSet<Request.Type>(); - - { - requestTypes.add(Request.Type.POST); - } - - /** - * {@inheritDoc} - */ - @Override - public Set<Request.Type> getRequestTypes() { - return requestTypes; - } - - /** - * {@inheritDoc} - */ - @Override - public Set<Resource.Type> getResourceTypes() { - return Collections.singleton(Resource.Type.Validation); - } - - /** - * {@inheritDoc} - */ - @Override - public Set<ResultStatus.STATUS> getResultStatuses() { - return null; - } - - @Override - public AuditEvent createAuditEvent(Request request, Result result) { - // intentionally skipping this event - return null; - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ViewInstanceEventCreator.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ViewInstanceEventCreator.java b/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ViewInstanceEventCreator.java deleted file mode 100644 index 59f8fbf..0000000 --- a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ViewInstanceEventCreator.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.ambari.server.audit.request.eventcreator; - -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; - -import org.apache.ambari.server.api.services.Request; -import org.apache.ambari.server.api.services.Result; -import org.apache.ambari.server.api.services.ResultStatus; -import org.apache.ambari.server.audit.AuditEvent; -import org.apache.ambari.server.audit.request.event.AddViewInstanceRequestAuditEvent; -import org.apache.ambari.server.audit.request.event.ChangeViewInstanceRequestAuditEvent; -import org.apache.ambari.server.audit.request.event.DeleteViewInstanceRequestAuditEvent; -import org.apache.ambari.server.audit.request.RequestAuditEventCreator; -import org.apache.ambari.server.controller.spi.Resource; -import org.apache.ambari.server.controller.utilities.PropertyHelper; -import org.joda.time.DateTime; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.User; - -/** - * This creator handles view instance requests - * For resource type {@link Resource.Type#ViewInstance} - * and request types {@link Request.Type#POST}, {@link Request.Type#PUT} and {@link Request.Type#DELETE} - */ -public class ViewInstanceEventCreator implements RequestAuditEventCreator { - - /** - * Set of {@link Request.Type}s that are handled by this plugin - */ - private Set<Request.Type> requestTypes = new HashSet<Request.Type>(); - - { - requestTypes.add(Request.Type.POST); - requestTypes.add(Request.Type.PUT); - requestTypes.add(Request.Type.DELETE); - } - - /** - * {@inheritDoc} - */ - @Override - public Set<Request.Type> getRequestTypes() { - return requestTypes; - } - - /** - * {@inheritDoc} - */ - @Override - public Set<Resource.Type> getResourceTypes() { - return Collections.singleton(Resource.Type.ViewInstance); - } - - /** - * {@inheritDoc} - */ - @Override - public Set<ResultStatus.STATUS> getResultStatuses() { - return null; - } - - @Override - public AuditEvent createAuditEvent(Request request, Result result) { - String username = ((User) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUsername(); - - switch(request.getRequestType()) { - - case POST: - return AddViewInstanceRequestAuditEvent.builder() - .withTimestamp(DateTime.now()) - .withRequestType(request.getRequestType()) - .withResultStatus(result.getStatus()) - .withUrl(request.getURI()) - .withRemoteIp(request.getRemoteAddress()) - .withUserName(username) - .withType(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "view_name"))) - .withVersion(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "version"))) - .withName(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "instance_name"))) - .withDisplayName(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "label"))) - .withDescription(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "description"))) - .build(); - - case PUT: - return ChangeViewInstanceRequestAuditEvent.builder() - .withTimestamp(DateTime.now()) - .withRequestType(request.getRequestType()) - .withResultStatus(result.getStatus()) - .withUrl(request.getURI()) - .withRemoteIp(request.getRemoteAddress()) - .withUserName(username) - .withType(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "view_name"))) - .withVersion(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "version"))) - .withName(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "instance_name"))) - .withDisplayName(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "label"))) - .withDescription(getProperty(request, PropertyHelper.getPropertyId("ViewInstanceInfo", "description"))) - .build(); - - case DELETE: - return DeleteViewInstanceRequestAuditEvent.builder() - .withTimestamp(DateTime.now()) - .withRequestType(request.getRequestType()) - .withResultStatus(result.getStatus()) - .withUrl(request.getURI()) - .withRemoteIp(request.getRemoteAddress()) - .withUserName(username) - .withType(request.getResource().getKeyValueMap().get(Resource.Type.View)) - .withVersion(request.getResource().getKeyValueMap().get(Resource.Type.ViewVersion)) - .withName(request.getResource().getKeyValueMap().get(Resource.Type.ViewInstance)) - .build(); - - default: - return null; - } - } - - private String getProperty(Request request, String properyId) { - if(!request.getBody().getPropertySets().isEmpty()) { - return String.valueOf(request.getBody().getPropertySets().iterator().next().get(properyId)); - } - return null; - } - -} http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ViewPrivilegeEventCreator.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ViewPrivilegeEventCreator.java b/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ViewPrivilegeEventCreator.java deleted file mode 100644 index fc57428..0000000 --- a/ambari-server/src/main/java/org/apache/ambari/server/audit/request/eventcreator/ViewPrivilegeEventCreator.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.ambari.server.audit.request.eventcreator; - -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.apache.ambari.server.api.services.Request; -import org.apache.ambari.server.api.services.Result; -import org.apache.ambari.server.api.services.ResultStatus; -import org.apache.ambari.server.audit.AuditEvent; -import org.apache.ambari.server.audit.request.RequestAuditEventCreator; -import org.apache.ambari.server.audit.request.event.ViewPrivilegeChangeRequestAuditEvent; -import org.apache.ambari.server.controller.spi.Resource; -import org.apache.ambari.server.controller.utilities.PropertyHelper; -import org.joda.time.DateTime; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.User; - -/** - * This creator handles view privilege requests - * For resource type {@link Resource.Type#ViewInstance} - * and request types {@link Request.Type#PUT} - */ -public class ViewPrivilegeEventCreator implements RequestAuditEventCreator { - - /** - * Set of {@link Request.Type}s that are handled by this plugin - */ - private Set<Request.Type> requestTypes = new HashSet<Request.Type>(); - - { - requestTypes.add(Request.Type.PUT); - } - - /** - * {@inheritDoc} - */ - @Override - public Set<Request.Type> getRequestTypes() { - return requestTypes; - } - - /** - * {@inheritDoc} - */ - @Override - public Set<Resource.Type> getResourceTypes() { - return Collections.singleton(Resource.Type.ViewPrivilege); - } - - /** - * {@inheritDoc} - */ - @Override - public Set<ResultStatus.STATUS> getResultStatuses() { - return null; - } - - @Override - public AuditEvent createAuditEvent(Request request, Result result) { - String username = ((User) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getUsername(); - - - Map<String, List<String>> users = getEntities(request, "USER"); - Map<String, List<String>> groups = getEntities(request, "GROUP"); - - return ViewPrivilegeChangeRequestAuditEvent.builder() - .withTimestamp(DateTime.now()) - .withRequestType(request.getRequestType()) - .withResultStatus(result.getStatus()) - .withUrl(request.getURI()) - .withRemoteIp(request.getRemoteAddress()) - .withUserName(username) - .withType(getProperty(request, PropertyHelper.getPropertyId("PrivilegeInfo", "view_name"))) - .withVersion(getProperty(request, PropertyHelper.getPropertyId("PrivilegeInfo", "version"))) - .withName(getProperty(request, PropertyHelper.getPropertyId("PrivilegeInfo", "instance_name"))) - .withUsers(users) - .withGroups(groups) - .build(); - - } - - private String getProperty(Request request, String properyId) { - if (!request.getBody().getPropertySets().isEmpty()) { - return String.valueOf(request.getBody().getPropertySets().iterator().next().get(properyId)); - } - return null; - } - - private Map<String, List<String>> getEntities(final Request request, final String type) { - Map<String, List<String>> entities = new HashMap<String, List<String>>(); - - for (Map<String, Object> propertyMap : request.getBody().getPropertySets()) { - String ptype = String.valueOf(propertyMap.get(PropertyHelper.getPropertyId("PrivilegeInfo", "principal_type"))); - if (type.equals(ptype)) { - String role = String.valueOf(propertyMap.get(PropertyHelper.getPropertyId("PrivilegeInfo", "permission_name"))); - String name = String.valueOf(propertyMap.get(PropertyHelper.getPropertyId("PrivilegeInfo", "principal_name"))); - if (!entities.containsKey(role)) { - entities.put(role, new LinkedList<String>()); - } - - entities.get(role).add(name); - } - } - return entities; - } - -} http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java index 1a972ab..801378f 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java @@ -51,7 +51,7 @@ import org.apache.ambari.server.api.services.PersistKeyValueService; import org.apache.ambari.server.api.services.stackadvisor.StackAdvisorBlueprintProcessor; import org.apache.ambari.server.api.services.stackadvisor.StackAdvisorHelper; import org.apache.ambari.server.audit.AuditLogger; -import org.apache.ambari.server.audit.request.RequestAuditLogger; +import org.apache.ambari.server.audit.event.request.RequestAuditLogger; import org.apache.ambari.server.audit.AuditLoggerModule; import org.apache.ambari.server.security.authentication.AmbariAuthenticationFilter; import org.apache.ambari.server.bootstrap.BootStrapImpl; http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java index 74cd698..efc466d 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java @@ -41,34 +41,34 @@ import org.apache.ambari.server.actionmanager.HostRoleCommandFactoryImpl; import org.apache.ambari.server.actionmanager.RequestFactory; import org.apache.ambari.server.actionmanager.StageFactory; import org.apache.ambari.server.actionmanager.StageFactoryImpl; -import org.apache.ambari.server.audit.request.RequestAuditEventCreator; -import org.apache.ambari.server.audit.request.RequestAuditLogger; -import org.apache.ambari.server.audit.request.RequestAuditLoggerImpl; -import org.apache.ambari.server.audit.request.eventcreator.AlertGroupEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.AlertTargetEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.BlueprintEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.BlueprintExportEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.CredentialEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.HostEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.PrivilegeEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.GroupEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.MemberEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.RecommendationIgnoreEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.RepositoryEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.RepositoryVersionEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.RequestEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.ServiceConfigDownloadEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.UnauthorizedEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.ConfigurationChangeEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.DefaultEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.ComponentEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.ServiceEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.UpgradeEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.UpgradeItemEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.UserEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.ValidationIgnoreEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.ViewInstanceEventCreator; -import org.apache.ambari.server.audit.request.eventcreator.ViewPrivilegeEventCreator; +import org.apache.ambari.server.audit.event.request.RequestAuditEventCreator; +import org.apache.ambari.server.audit.event.request.RequestAuditLogger; +import org.apache.ambari.server.audit.event.request.RequestAuditLoggerImpl; +import org.apache.ambari.server.audit.event.request.eventcreator.AlertGroupEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.AlertTargetEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.BlueprintEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.BlueprintExportEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.CredentialEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.HostEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.PrivilegeEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.GroupEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.MemberEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.RecommendationIgnoreEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.RepositoryEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.RepositoryVersionEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.RequestEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.ServiceConfigDownloadEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.UnauthorizedEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.ConfigurationChangeEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.DefaultEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.ComponentEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.ServiceEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.UpgradeEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.UpgradeItemEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.UserEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.ValidationIgnoreEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.ViewInstanceEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.ViewPrivilegeEventCreator; import org.apache.ambari.server.checks.AbstractCheckDescriptor; import org.apache.ambari.server.checks.UpgradeCheckRegistry; import org.apache.ambari.server.configuration.Configuration; http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilter.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilter.java b/ambari-server/src/main/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilter.java index b41cfb7..79b055e 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilter.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilter.java @@ -24,10 +24,9 @@ import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.ambari.server.audit.AuditEvent; +import org.apache.ambari.server.audit.event.AuditEvent; import org.apache.ambari.server.audit.AuditLogger; -import org.apache.ambari.server.audit.LoginFailedAuditEvent; -import org.apache.ambari.server.audit.LoginSucceededAuditEvent; +import org.apache.ambari.server.audit.event.LoginAuditEvent; import org.apache.ambari.server.security.authorization.AuthorizationHelper; import org.apache.ambari.server.utils.RequestUtils; import org.joda.time.DateTime; @@ -59,10 +58,10 @@ public class AmbariAuthenticationFilter extends BasicAuthenticationFilter { HttpServletRequest request = (HttpServletRequest) req; String header = request.getHeader("Authorization"); if (AuthorizationHelper.getAuthenticatedName() == null && (header == null || !header.startsWith("Basic "))) { - AuditEvent loginFailedAuditEvent = LoginFailedAuditEvent.builder() + AuditEvent loginFailedAuditEvent = LoginAuditEvent.builder() .withRemoteIp(RequestUtils.getRemoteAddress(request)) .withTimestamp(DateTime.now()) - .withReason("Authentication required") + .withReasonOfFailure("Authentication required") .withUserName(null) .build(); auditLogger.log(loginFailedAuditEvent); @@ -72,7 +71,7 @@ public class AmbariAuthenticationFilter extends BasicAuthenticationFilter { @Override protected void onSuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, Authentication authResult) throws IOException { - AuditEvent loginSucceededAuditEvent = LoginSucceededAuditEvent.builder() + AuditEvent loginSucceededAuditEvent = LoginAuditEvent.builder() .withRemoteIp(RequestUtils.getRemoteAddress(request)) .withUserName(authResult.getName()) .withTimestamp(DateTime.now()) @@ -91,10 +90,10 @@ public class AmbariAuthenticationFilter extends BasicAuthenticationFilter { } catch (Exception e) { LOG.warn("Error occurred during decoding authorization header.",e); } - AuditEvent loginFailedAuditEvent = LoginFailedAuditEvent.builder() + AuditEvent loginFailedAuditEvent = LoginAuditEvent.builder() .withRemoteIp(RequestUtils.getRemoteAddress(request)) .withTimestamp(DateTime.now()) - .withReason("Invalid username/password combination") + .withReasonOfFailure("Invalid username/password combination") .withUserName(username) .build(); auditLogger.log(loginFailedAuditEvent); http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilter.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilter.java b/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilter.java index 65fd213..b28f694 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilter.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilter.java @@ -19,10 +19,10 @@ package org.apache.ambari.server.security.authorization; import com.google.inject.Inject; -import org.apache.ambari.server.audit.AccessUnauthorizedAuditEvent; -import org.apache.ambari.server.audit.AuditEvent; +import org.apache.ambari.server.audit.event.AccessUnauthorizedAuditEvent; +import org.apache.ambari.server.audit.event.AuditEvent; import org.apache.ambari.server.audit.AuditLogger; -import org.apache.ambari.server.audit.LoginSucceededAuditEvent; +import org.apache.ambari.server.audit.event.LoginAuditEvent; import org.apache.ambari.server.configuration.Configuration; import org.apache.ambari.server.orm.entities.PermissionEntity; import org.apache.ambari.server.orm.entities.PrivilegeEntity; @@ -136,12 +136,12 @@ public class AmbariAuthorizationFilter implements Filter { if (token != null) { InternalAuthenticationToken internalAuthenticationToken = new InternalAuthenticationToken(token); context.setAuthentication(internalAuthenticationToken); - LoginSucceededAuditEvent loginSucceededAuditEvent = LoginSucceededAuditEvent.builder() + LoginAuditEvent loginAuditEvent = LoginAuditEvent.builder() .withUserName(internalAuthenticationToken.getName()) .withRemoteIp(RequestUtils.getRemoteAddress(httpRequest)) .withRoles(AuthorizationHelper.getPermissionLabels(authentication)) .withTimestamp(DateTime.now()).build(); - auditLogger.log(loginSucceededAuditEvent); + auditLogger.log(loginAuditEvent); } else { // for view access, we should redirect to the Ambari login if (requestURI.matches(VIEWS_CONTEXT_ALL_PATTERN)) { http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/serveraction/AbstractServerAction.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/AbstractServerAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/AbstractServerAction.java index 0fd530a..f36fede 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/AbstractServerAction.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/AbstractServerAction.java @@ -24,9 +24,8 @@ import org.apache.ambari.server.actionmanager.HostRoleCommand; import org.apache.ambari.server.actionmanager.HostRoleStatus; import org.apache.ambari.server.agent.CommandReport; import org.apache.ambari.server.agent.ExecutionCommand; -import org.apache.ambari.server.audit.AuditEvent; +import org.apache.ambari.server.audit.event.AuditEvent; import org.apache.ambari.server.audit.AuditLogger; -import org.apache.ambari.server.controller.AmbariServer; import org.apache.ambari.server.utils.StageUtils; import java.util.Collections; http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreateKeytabFilesServerAction.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreateKeytabFilesServerAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreateKeytabFilesServerAction.java index 1af0245..4086b85 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreateKeytabFilesServerAction.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreateKeytabFilesServerAction.java @@ -22,8 +22,7 @@ import com.google.inject.Inject; import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.actionmanager.HostRoleStatus; import org.apache.ambari.server.agent.CommandReport; -import org.apache.ambari.server.audit.kerberos.AbstractKerberosAuditEvent; -import org.apache.ambari.server.audit.kerberos.CreateKeyTabKerberosAuditEvent; +import org.apache.ambari.server.audit.event.kerberos.CreateKeyTabKerberosAuditEvent; import org.apache.ambari.server.configuration.Configuration; import org.apache.ambari.server.orm.dao.HostDAO; import org.apache.ambari.server.orm.dao.KerberosPrincipalDAO; http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreatePrincipalsServerAction.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreatePrincipalsServerAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreatePrincipalsServerAction.java index 09df299..3ed001c 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreatePrincipalsServerAction.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/CreatePrincipalsServerAction.java @@ -22,7 +22,7 @@ import com.google.inject.Inject; import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.actionmanager.HostRoleStatus; import org.apache.ambari.server.agent.CommandReport; -import org.apache.ambari.server.audit.kerberos.CreatePrincipalKerberosAuditEvent; +import org.apache.ambari.server.audit.event.kerberos.CreatePrincipalKerberosAuditEvent; import org.apache.ambari.server.orm.dao.KerberosPrincipalDAO; import org.apache.ambari.server.orm.dao.KerberosPrincipalHostDAO; import org.apache.ambari.server.orm.entities.KerberosPrincipalEntity; http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/DestroyPrincipalsServerAction.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/DestroyPrincipalsServerAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/DestroyPrincipalsServerAction.java index ce46af4..7f94399 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/DestroyPrincipalsServerAction.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/DestroyPrincipalsServerAction.java @@ -21,7 +21,7 @@ package org.apache.ambari.server.serveraction.kerberos; import com.google.inject.Inject; import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.agent.CommandReport; -import org.apache.ambari.server.audit.kerberos.DestroyPrincipalKerberosAuditEvent; +import org.apache.ambari.server.audit.event.kerberos.DestroyPrincipalKerberosAuditEvent; import org.apache.ambari.server.orm.dao.KerberosPrincipalDAO; import org.apache.ambari.server.orm.entities.KerberosPrincipalEntity; import org.joda.time.DateTime; http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/FinalizeKerberosServerAction.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/FinalizeKerberosServerAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/FinalizeKerberosServerAction.java index 55b1fbb..7ce97ce 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/FinalizeKerberosServerAction.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/kerberos/FinalizeKerberosServerAction.java @@ -21,7 +21,7 @@ package org.apache.ambari.server.serveraction.kerberos; import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.actionmanager.HostRoleStatus; import org.apache.ambari.server.agent.CommandReport; -import org.apache.ambari.server.audit.kerberos.ChangeSecurityStateKerberosAuditEvent; +import org.apache.ambari.server.audit.event.kerberos.ChangeSecurityStateKerberosAuditEvent; import org.apache.ambari.server.state.Cluster; import org.apache.ambari.server.state.Host; import org.apache.ambari.server.state.SecurityState; http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/api/services/BaseServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/BaseServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/BaseServiceTest.java index ad39354..7f11af4 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/BaseServiceTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/api/services/BaseServiceTest.java @@ -22,12 +22,9 @@ import org.apache.ambari.server.api.resources.ResourceInstance; import org.apache.ambari.server.api.services.parsers.BodyParseException; import org.apache.ambari.server.api.services.parsers.RequestBodyParser; import org.apache.ambari.server.api.services.serializers.ResultSerializer; -import org.apache.ambari.server.audit.request.RequestAuditLogger; -import org.apache.ambari.server.orm.GuiceJpaInitializer; -import org.apache.ambari.server.orm.InMemoryDefaultTestModule; +import org.apache.ambari.server.audit.event.request.RequestAuditLogger; import org.easymock.Capture; import org.easymock.EasyMock; -import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; @@ -42,9 +39,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import com.google.inject.AbstractModule; -import com.google.inject.Guice; -import com.google.inject.Injector; import static org.easymock.EasyMock.*; import static org.easymock.EasyMock.createNiceMock; import static org.easymock.EasyMock.createStrictMock; http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/AccessUnauthorizedAuditEventTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/AccessUnauthorizedAuditEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/AccessUnauthorizedAuditEventTest.java index e91db27..94de686 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/audit/AccessUnauthorizedAuditEventTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/AccessUnauthorizedAuditEventTest.java @@ -17,6 +17,7 @@ */ package org.apache.ambari.server.audit; +import org.apache.ambari.server.audit.event.AccessUnauthorizedAuditEvent; import org.joda.time.DateTime; import org.junit.Test; @@ -47,7 +48,7 @@ public class AccessUnauthorizedAuditEventTest { String actualAuditMessage = evnt.getAuditMessage(); // Then - String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Operation(%s), ResourcePath(%s), Status(Access not authorized !)", testUserName, testRemoteIp, testHttpMethod, testResourcePath); + String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Operation(%s), ResourcePath(%s), Status(Failed), Reason(Access not authorized)", testUserName, testRemoteIp, testHttpMethod, testResourcePath); assertThat(actualAuditMessage, equalTo(expectedAuditMessage)); } http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/BufferedAuditLoggerTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/BufferedAuditLoggerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/BufferedAuditLoggerTest.java index 8c7835b..a188b4c 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/audit/BufferedAuditLoggerTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/BufferedAuditLoggerTest.java @@ -21,6 +21,8 @@ package org.apache.ambari.server.audit; import java.util.Collections; import java.util.List; +import org.apache.ambari.server.audit.event.AuditEvent; +import org.apache.ambari.server.audit.event.OperationStatusAuditEvent; import org.easymock.Capture; import org.easymock.EasyMockRule; import org.easymock.Mock; http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginAuditEventTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginAuditEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginAuditEventTest.java new file mode 100644 index 0000000..7536f3b --- /dev/null +++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginAuditEventTest.java @@ -0,0 +1,119 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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.apache.ambari.server.audit; + + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.ambari.server.audit.event.LoginAuditEvent; +import org.joda.time.DateTime; +import org.junit.Test; + +import nl.jqno.equalsverifier.EqualsVerifier; + +import static org.hamcrest.core.IsEqual.equalTo; +import static org.junit.Assert.assertThat; + +public class LoginAuditEventTest { + + @Test + public void testAuditMessage() throws Exception { + // Given + String testUserName = "USER1"; + String testRemoteIp = "127.0.0.1"; + + Map<String, List<String>> roles = new HashMap<>(); + roles.put("a", Arrays.asList("r1", "r2", "r3")); + + LoginAuditEvent evnt = LoginAuditEvent.builder() + .withTimestamp(DateTime.now()) + .withRemoteIp(testRemoteIp) + .withUserName(testUserName) + .withRoles(roles) + .build(); + + // When + String actualAuditMessage = evnt.getAuditMessage(); + + String roleMessage = System.lineSeparator() + " a: r1, r2, r3" + System.lineSeparator(); + + // Then + String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Operation(User login), Roles(%s), Status(Success)", + testUserName, testRemoteIp, roleMessage); + + assertThat(actualAuditMessage, equalTo(expectedAuditMessage)); + + } + + @Test + public void testFailedAuditMessage() throws Exception { + // Given + String testUserName = "USER1"; + String testRemoteIp = "127.0.0.1"; + String reason = "Bad credentials"; + + Map<String, List<String>> roles = new HashMap<>(); + roles.put("a", Arrays.asList("r1", "r2", "r3")); + + LoginAuditEvent evnt = LoginAuditEvent.builder() + .withTimestamp(DateTime.now()) + .withRemoteIp(testRemoteIp) + .withUserName(testUserName) + .withRoles(roles) + .withReasonOfFailure(reason) + .build(); + + // When + String actualAuditMessage = evnt.getAuditMessage(); + + String roleMessage = System.lineSeparator() + " a: r1, r2, r3" + System.lineSeparator(); + + // Then + String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Operation(User login), Roles(%s), Status(Failed), Reason(%s)", + testUserName, testRemoteIp, roleMessage, reason); + + assertThat(actualAuditMessage, equalTo(expectedAuditMessage)); + + } + + @Test + public void testTimestamp() throws Exception { + // Given + DateTime testTimestamp = DateTime.now(); + LoginAuditEvent evnt = LoginAuditEvent.builder() + .withTimestamp(testTimestamp) + .build(); + + // When + DateTime actualTimestamp = evnt.getTimestamp(); + + // Then + assertThat(actualTimestamp, equalTo(testTimestamp)); + + } + + @Test + public void testEquals() throws Exception { + EqualsVerifier.forClass(LoginAuditEvent.class) + .verify(); + } +} http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginFailedAuditEventTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginFailedAuditEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginFailedAuditEventTest.java deleted file mode 100644 index 56d47d0..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginFailedAuditEventTest.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.ambari.server.audit; - -import org.joda.time.DateTime; -import org.junit.Test; - -import nl.jqno.equalsverifier.EqualsVerifier; - -import static org.hamcrest.core.IsEqual.equalTo; -import static org.junit.Assert.assertThat; - -public class LoginFailedAuditEventTest { - - @Test - public void testAuditMessage() throws Exception { - String testUserName = "USER1"; - String testRemoteIp = "127.0.0.1"; - String testReason = "Bad credentials"; - - LoginFailedAuditEvent evnt = LoginFailedAuditEvent.builder() - .withTimestamp(DateTime.now()) - .withRemoteIp(testRemoteIp) - .withUserName(testUserName) - .withReason(testReason) - .build(); - - // When - String actualAuditMessage = evnt.getAuditMessage(); - - // Then - String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Status(Login failed !), Reason(%s)", testUserName, testRemoteIp, testReason); - - assertThat(actualAuditMessage, equalTo(expectedAuditMessage)); - - } - - @Test - public void testTimestamp() throws Exception { - // Given - DateTime testTimestamp = DateTime.now(); - LoginFailedAuditEvent evnt = LoginFailedAuditEvent.builder() - .withTimestamp(testTimestamp) - .build(); - - // When - DateTime actualTimestamp = evnt.getTimestamp(); - - // Then - assertThat(actualTimestamp, equalTo(testTimestamp)); - - } - - @Test - public void testEquals() throws Exception { - EqualsVerifier.forClass(LoginFailedAuditEvent.class) - .verify(); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginSucceededAuditEventTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginSucceededAuditEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginSucceededAuditEventTest.java deleted file mode 100644 index 31e7eef..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/audit/LoginSucceededAuditEventTest.java +++ /dev/null @@ -1,89 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.ambari.server.audit; - - -import java.util.Arrays; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; - -import org.apache.commons.lang.StringUtils; -import org.joda.time.DateTime; -import org.junit.Test; - -import nl.jqno.equalsverifier.EqualsVerifier; - -import static org.hamcrest.core.IsEqual.equalTo; -import static org.junit.Assert.assertThat; - -public class LoginSucceededAuditEventTest { - - @Test - public void testAuditMessage() throws Exception { - // Given - String testUserName = "USER1"; - String testRemoteIp = "127.0.0.1"; - - Map<String, List<String>> roles = new HashMap<>(); - roles.put("a", Arrays.asList("r1", "r2", "r3")); - - LoginSucceededAuditEvent evnt = LoginSucceededAuditEvent.builder() - .withTimestamp(DateTime.now()) - .withRemoteIp(testRemoteIp) - .withUserName(testUserName) - .withRoles(roles) - .build(); - - // When - String actualAuditMessage = evnt.getAuditMessage(); - - String roleMessage = System.lineSeparator() + " a: r1, r2, r3" + System.lineSeparator(); - - // Then - String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Roles(%s), Status(Login succeeded !)", - testUserName, testRemoteIp, roleMessage); - - assertThat(actualAuditMessage, equalTo(expectedAuditMessage)); - - } - - @Test - public void testTimestamp() throws Exception { - // Given - DateTime testTimestamp = DateTime.now(); - LoginSucceededAuditEvent evnt = LoginSucceededAuditEvent.builder() - .withTimestamp(testTimestamp) - .build(); - - // When - DateTime actualTimestamp = evnt.getTimestamp(); - - // Then - assertThat(actualTimestamp, equalTo(testTimestamp)); - - } - - @Test - public void testEquals() throws Exception { - EqualsVerifier.forClass(LoginSucceededAuditEvent.class) - .verify(); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/LogoutAuditEventTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/LogoutAuditEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/LogoutAuditEventTest.java index ec6ea2d..ad4c8bc 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/audit/LogoutAuditEventTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/LogoutAuditEventTest.java @@ -18,6 +18,8 @@ package org.apache.ambari.server.audit; import nl.jqno.equalsverifier.EqualsVerifier; + +import org.apache.ambari.server.audit.event.LogoutAuditEvent; import org.joda.time.DateTime; import org.junit.Test; @@ -42,7 +44,7 @@ public class LogoutAuditEventTest { String actualAuditMessage = evnt.getAuditMessage(); // Then - String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Status(Logout succeeded !)", + String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Operation(Logout), Status(Success)", testUserName, testRemoteIp); assertThat(actualAuditMessage, equalTo(expectedAuditMessage)); http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/OperationStatusAuditEventTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/OperationStatusAuditEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/OperationStatusAuditEventTest.java index 7225158..084fcab 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/audit/OperationStatusAuditEventTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/OperationStatusAuditEventTest.java @@ -18,6 +18,7 @@ package org.apache.ambari.server.audit; +import org.apache.ambari.server.audit.event.OperationStatusAuditEvent; import org.joda.time.DateTime; import org.junit.Test; http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationAuditEventTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationAuditEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationAuditEventTest.java new file mode 100644 index 0000000..d564d76 --- /dev/null +++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationAuditEventTest.java @@ -0,0 +1,80 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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.apache.ambari.server.audit; + +import org.apache.ambari.server.audit.event.LoginAuditEvent; +import org.apache.ambari.server.audit.event.StartOperationAuditEvent; +import org.joda.time.DateTime; +import org.junit.Test; + +import nl.jqno.equalsverifier.EqualsVerifier; + +import static org.hamcrest.core.IsEqual.equalTo; +import static org.junit.Assert.assertThat; + +public class StartOperationAuditEventTest { + + @Test + public void testAuditMessage() throws Exception { + // Given + String testUserName = "USER1"; + String testRemoteIp = "127.0.0.1"; + String testRequestDetails = "{ \"key\": \"value\"}"; + Long testRequestId = 100L; + + StartOperationAuditEvent evnt = StartOperationAuditEvent.builder() + .withTimestamp(DateTime.now()) + .withRemoteIp(testRemoteIp) + .withUserName(testUserName) + .withOperation(testRequestDetails) + .withRequestId(testRequestId.toString()) + .build(); + + // When + String actualAuditMessage = evnt.getAuditMessage(); + + // Then + String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Operation(%s), RequestId(%d), Status(Success)", testUserName, testRemoteIp, testRequestDetails, testRequestId); + + assertThat(actualAuditMessage, equalTo(expectedAuditMessage)); + + } + + @Test + public void testTimestamp() throws Exception { + // Given + DateTime testTimestamp = DateTime.now(); + StartOperationAuditEvent evnt = StartOperationAuditEvent.builder() + .withTimestamp(testTimestamp) + .build(); + + // When + DateTime actualTimestamp = evnt.getTimestamp(); + + // Then + assertThat(actualTimestamp, equalTo(testTimestamp)); + + } + + + @Test + public void testEquals() throws Exception { + EqualsVerifier.forClass(LoginAuditEvent.class) + .verify(); + } +} http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationFailedAuditEventTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationFailedAuditEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationFailedAuditEventTest.java deleted file mode 100644 index 9544abb..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationFailedAuditEventTest.java +++ /dev/null @@ -1,77 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.ambari.server.audit; - -import org.joda.time.DateTime; -import org.junit.Test; - -import nl.jqno.equalsverifier.EqualsVerifier; - -import static org.hamcrest.core.IsEqual.equalTo; -import static org.junit.Assert.assertThat; - -public class StartOperationFailedAuditEventTest { - - @Test - public void testAuditMessage() throws Exception { - // Given - String testUserName = "USER1"; - String testRemoteIp = "127.0.0.1"; - String testRequestDetails = "{ \"key\": \"value\"}"; - String testReason = "Parse exception"; - - - StartOperationFailedAuditEvent evnt = StartOperationFailedAuditEvent.builder() - .withTimestamp(DateTime.now()) - .withRemoteIp(testRemoteIp) - .withUserName(testUserName) - .withOperation(testRequestDetails) - .withReason(testReason) - .build(); - - // When - String actualAuditMessage = evnt.getAuditMessage(); - - // Then - String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Operation(%s), Status(Request failed to be processed !), Reason(%s)", testUserName, testRemoteIp, testRequestDetails, testReason); - - assertThat(actualAuditMessage, equalTo(expectedAuditMessage)); - } - - @Test - public void testTimestamp() throws Exception { - // Given - DateTime testTimestamp = DateTime.now(); - StartOperationFailedAuditEvent evnt = StartOperationFailedAuditEvent.builder() - .withTimestamp(testTimestamp) - .build(); - - // When - DateTime actualTimestamp = evnt.getTimestamp(); - - // Then - assertThat(actualTimestamp, equalTo(testTimestamp)); - - } - - @Test - public void testEquals() throws Exception { - EqualsVerifier.forClass(StartOperationFailedAuditEvent.class) - .verify(); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationSucceededAuditEventTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationSucceededAuditEventTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationSucceededAuditEventTest.java deleted file mode 100644 index 0027271..0000000 --- a/ambari-server/src/test/java/org/apache/ambari/server/audit/StartOperationSucceededAuditEventTest.java +++ /dev/null @@ -1,78 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you 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.apache.ambari.server.audit; - -import org.joda.time.DateTime; -import org.junit.Test; - -import nl.jqno.equalsverifier.EqualsVerifier; - -import static org.hamcrest.core.IsEqual.equalTo; -import static org.junit.Assert.assertThat; - -public class StartOperationSucceededAuditEventTest { - - @Test - public void testAuditMessage() throws Exception { - // Given - String testUserName = "USER1"; - String testRemoteIp = "127.0.0.1"; - String testRequestDetails = "{ \"key\": \"value\"}"; - Long testRequestId = 100L; - - StartOperationSucceededAuditEvent evnt = StartOperationSucceededAuditEvent.builder() - .withTimestamp(DateTime.now()) - .withRemoteIp(testRemoteIp) - .withUserName(testUserName) - .withOperation(testRequestDetails) - .withRequestId(testRequestId.toString()) - .build(); - - // When - String actualAuditMessage = evnt.getAuditMessage(); - - // Then - String expectedAuditMessage = String.format("User(%s), RemoteIp(%s), Operation(%s), Status(Request queued for processing with request id %d)", testUserName, testRemoteIp, testRequestDetails, testRequestId); - - assertThat(actualAuditMessage, equalTo(expectedAuditMessage)); - - } - - @Test - public void testTimestamp() throws Exception { - // Given - DateTime testTimestamp = DateTime.now(); - StartOperationSucceededAuditEvent evnt = StartOperationSucceededAuditEvent.builder() - .withTimestamp(testTimestamp) - .build(); - - // When - DateTime actualTimestamp = evnt.getTimestamp(); - - // Then - assertThat(actualTimestamp, equalTo(testTimestamp)); - - } - - - @Test - public void testEquals() throws Exception { - EqualsVerifier.forClass(LoginSucceededAuditEvent.class) - .verify(); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/request/AbstractBaseCreator.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/AbstractBaseCreator.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/AbstractBaseCreator.java index 1847f31..1c38b49 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/AbstractBaseCreator.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/AbstractBaseCreator.java @@ -20,7 +20,8 @@ package org.apache.ambari.server.audit.request; import org.apache.ambari.server.api.services.Request; import org.apache.ambari.server.api.services.Result; -import org.apache.ambari.server.audit.AuditEvent; +import org.apache.ambari.server.audit.event.AuditEvent; +import org.apache.ambari.server.audit.event.request.RequestAuditEventCreator; import org.joda.time.DateTime; public abstract class AbstractBaseCreator implements RequestAuditEventCreator { http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/request/DefaultEventCreatorTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/DefaultEventCreatorTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/DefaultEventCreatorTest.java index 0d17319..1db6a18 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/DefaultEventCreatorTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/DefaultEventCreatorTest.java @@ -28,7 +28,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; -import java.util.List; import java.util.Locale; import java.util.Map; @@ -45,10 +44,6 @@ import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpUpgradeHandler; import javax.servlet.http.Part; -import javax.ws.rs.core.Cookie; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedMap; import org.apache.ambari.server.api.query.QueryImpl; import org.apache.ambari.server.api.resources.HostComponentResourceDefinition; @@ -60,7 +55,7 @@ import org.apache.ambari.server.api.services.RequestFactory; import org.apache.ambari.server.api.services.Result; import org.apache.ambari.server.api.services.ResultImpl; import org.apache.ambari.server.api.services.ResultStatus; -import org.apache.ambari.server.audit.request.eventcreator.DefaultEventCreator; +import org.apache.ambari.server.audit.event.request.eventcreator.DefaultEventCreator; import org.apache.ambari.server.controller.spi.Resource; import org.junit.Before; import org.junit.BeforeClass; @@ -73,8 +68,6 @@ import org.springframework.security.core.userdetails.User; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; -import com.sun.jersey.core.util.MultivaluedMapImpl; - public class DefaultEventCreatorTest { private DefaultEventCreator defaultEventCreator; http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLogModule.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLogModule.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLogModule.java index 52ad44c..7a3b0d1 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLogModule.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLogModule.java @@ -20,6 +20,9 @@ package org.apache.ambari.server.audit.request; import org.apache.ambari.server.audit.AuditLogger; import org.apache.ambari.server.audit.AuditLoggerDefaultImpl; +import org.apache.ambari.server.audit.event.request.RequestAuditEventCreator; +import org.apache.ambari.server.audit.event.request.RequestAuditLogger; +import org.apache.ambari.server.audit.event.request.RequestAuditLoggerImpl; import org.easymock.EasyMock; import com.google.inject.AbstractModule; http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLoggerTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLoggerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLoggerTest.java index 549bd4c..6cae132 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLoggerTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/audit/request/RequestAuditLoggerTest.java @@ -34,8 +34,9 @@ import org.apache.ambari.server.api.services.RequestFactory; import org.apache.ambari.server.api.services.Result; import org.apache.ambari.server.api.services.ResultImpl; import org.apache.ambari.server.api.services.ResultStatus; -import org.apache.ambari.server.audit.AuditEvent; +import org.apache.ambari.server.audit.event.AuditEvent; import org.apache.ambari.server.audit.AuditLogger; +import org.apache.ambari.server.audit.event.request.RequestAuditLogger; import org.apache.ambari.server.controller.spi.Resource; import org.easymock.Capture; import org.easymock.EasyMock; http://git-wip-us.apache.org/repos/asf/ambari/blob/1b1b3bc6/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilterTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilterTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilterTest.java index 8430326..a415b4c 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilterTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/AmbariAuthenticationFilterTest.java @@ -27,7 +27,7 @@ import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.ambari.server.audit.AuditEvent; +import org.apache.ambari.server.audit.event.AuditEvent; import org.apache.ambari.server.audit.AuditLogger; import org.apache.ambari.server.security.authorization.AuthorizationHelper; import org.junit.runner.RunWith;
