Split off audit/ package from giant server package.
Change-Id: I6d983daf8a8f9449123d4963b4e9a589f6566188
This commit is contained in:
@@ -13,6 +13,7 @@ java_library(
|
||||
"//java/com/google/gerrit/metrics",
|
||||
"//java/com/google/gerrit/reviewdb:server",
|
||||
"//java/com/google/gerrit/server",
|
||||
"//java/com/google/gerrit/server/audit",
|
||||
"//java/com/google/gerrit/server/git/receive",
|
||||
"//java/com/google/gerrit/server/ioutil",
|
||||
"//java/com/google/gerrit/server/restapi",
|
||||
|
@@ -10,6 +10,7 @@ java_library(
|
||||
"//java/com/google/gerrit/httpd",
|
||||
"//java/com/google/gerrit/reviewdb:server",
|
||||
"//java/com/google/gerrit/server",
|
||||
"//java/com/google/gerrit/server/audit",
|
||||
"//lib:gson",
|
||||
"//lib:guava",
|
||||
"//lib:gwtorm",
|
||||
|
@@ -13,6 +13,7 @@ java_library(
|
||||
"//java/com/google/gerrit/reviewdb:server",
|
||||
"//java/com/google/gerrit/util/http",
|
||||
"//java/com/google/gerrit/server",
|
||||
"//java/com/google/gerrit/server/audit",
|
||||
"//lib:guava",
|
||||
"//lib:gwtorm",
|
||||
"//lib:servlet-api-3_1",
|
||||
|
@@ -18,6 +18,7 @@ java_library(
|
||||
"//java/com/google/gerrit/server",
|
||||
"//java/com/google/gerrit/server:module",
|
||||
"//java/com/google/gerrit/server/api",
|
||||
"//java/com/google/gerrit/server/audit",
|
||||
"//java/com/google/gerrit/server/cache/h2",
|
||||
"//java/com/google/gerrit/server/cache/mem",
|
||||
"//java/com/google/gerrit/server/git/receive",
|
||||
|
@@ -47,6 +47,7 @@ import com.google.gerrit.server.StartupChecks;
|
||||
import com.google.gerrit.server.account.AccountDeactivator;
|
||||
import com.google.gerrit.server.account.InternalAccountDirectory;
|
||||
import com.google.gerrit.server.api.GerritApiModule;
|
||||
import com.google.gerrit.server.audit.AuditModule;
|
||||
import com.google.gerrit.server.cache.h2.H2CacheModule;
|
||||
import com.google.gerrit.server.cache.mem.DefaultMemoryCacheModule;
|
||||
import com.google.gerrit.server.change.ChangeCleanupRunner;
|
||||
@@ -342,6 +343,7 @@ public class WebAppInitializer extends GuiceServletContextListener implements Fi
|
||||
modules.add(new SmtpEmailSender.Module());
|
||||
modules.add(new SignedTokenEmailTokenVerifier.Module());
|
||||
modules.add(new LocalMergeSuperSetComputation.Module());
|
||||
modules.add(new AuditModule());
|
||||
|
||||
// Plugin module needs to be inserted *before* the index module.
|
||||
// There is the concept of LifecycleModule, in Gerrit's own extension
|
||||
|
@@ -36,6 +36,7 @@ java_library(
|
||||
"//java/com/google/gerrit/server",
|
||||
"//java/com/google/gerrit/server:module",
|
||||
"//java/com/google/gerrit/server/api",
|
||||
"//java/com/google/gerrit/server/audit",
|
||||
"//java/com/google/gerrit/server/cache/h2",
|
||||
"//java/com/google/gerrit/server/cache/mem",
|
||||
"//java/com/google/gerrit/server/git/receive",
|
||||
|
@@ -56,6 +56,7 @@ import com.google.gerrit.server.account.AccountDeactivator;
|
||||
import com.google.gerrit.server.account.InternalAccountDirectory;
|
||||
import com.google.gerrit.server.api.GerritApiModule;
|
||||
import com.google.gerrit.server.api.PluginApiModule;
|
||||
import com.google.gerrit.server.audit.AuditModule;
|
||||
import com.google.gerrit.server.cache.h2.H2CacheModule;
|
||||
import com.google.gerrit.server.cache.mem.DefaultMemoryCacheModule;
|
||||
import com.google.gerrit.server.change.ChangeCleanupRunner;
|
||||
@@ -422,6 +423,7 @@ public class Daemon extends SiteProgram {
|
||||
modules.add(cfgInjector.getInstance(GerritGlobalModule.class));
|
||||
modules.add(new GerritApiModule());
|
||||
modules.add(new PluginApiModule());
|
||||
modules.add(new AuditModule());
|
||||
|
||||
modules.add(new SearchingChangeCacheImpl.Module(slave));
|
||||
modules.add(new InternalAccountDirectory.Module());
|
||||
|
@@ -16,6 +16,7 @@ package com.google.gerrit.server.audit;
|
||||
|
||||
import com.google.gerrit.extensions.registration.DynamicSet;
|
||||
import com.google.gerrit.server.audit.group.GroupAuditListener;
|
||||
import com.google.gerrit.server.group.GroupAuditService;
|
||||
import com.google.inject.AbstractModule;
|
||||
|
||||
public class AuditModule extends AbstractModule {
|
||||
@@ -24,6 +25,6 @@ public class AuditModule extends AbstractModule {
|
||||
protected void configure() {
|
||||
DynamicSet.setOf(binder(), AuditListener.class);
|
||||
DynamicSet.setOf(binder(), GroupAuditListener.class);
|
||||
bind(AuditService.class);
|
||||
bind(GroupAuditService.class).to(AuditService.class);
|
||||
}
|
||||
}
|
||||
|
@@ -22,12 +22,13 @@ import com.google.gerrit.reviewdb.client.AccountGroup;
|
||||
import com.google.gerrit.server.audit.group.GroupAuditListener;
|
||||
import com.google.gerrit.server.audit.group.GroupMemberAuditEvent;
|
||||
import com.google.gerrit.server.audit.group.GroupSubgroupAuditEvent;
|
||||
import com.google.gerrit.server.group.GroupAuditService;
|
||||
import com.google.inject.Inject;
|
||||
import com.google.inject.Singleton;
|
||||
import java.sql.Timestamp;
|
||||
|
||||
@Singleton
|
||||
public class AuditService {
|
||||
public class AuditService implements GroupAuditService {
|
||||
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
|
||||
|
||||
private final DynamicSet<AuditListener> auditListeners;
|
||||
@@ -47,6 +48,7 @@ public class AuditService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispatchAddMembers(
|
||||
Account.Id actor,
|
||||
AccountGroup.UUID updatedGroup,
|
||||
@@ -63,6 +65,7 @@ public class AuditService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispatchDeleteMembers(
|
||||
Account.Id actor,
|
||||
AccountGroup.UUID updatedGroup,
|
||||
@@ -79,6 +82,7 @@ public class AuditService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispatchAddSubgroups(
|
||||
Account.Id actor,
|
||||
AccountGroup.UUID updatedGroup,
|
||||
@@ -95,6 +99,7 @@ public class AuditService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispatchDeleteSubgroups(
|
||||
Account.Id actor,
|
||||
AccountGroup.UUID updatedGroup,
|
||||
|
73
java/com/google/gerrit/server/audit/BUILD
Normal file
73
java/com/google/gerrit/server/audit/BUILD
Normal file
@@ -0,0 +1,73 @@
|
||||
java_library(
|
||||
name = "audit",
|
||||
srcs = glob(
|
||||
["**/*.java"],
|
||||
),
|
||||
resource_strip_prefix = "resources",
|
||||
resources = ["//resources/com/google/gerrit/server"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//java/com/google/gerrit/common:annotations",
|
||||
"//java/com/google/gerrit/common:server",
|
||||
"//java/com/google/gerrit/extensions:api",
|
||||
"//java/com/google/gerrit/index",
|
||||
"//java/com/google/gerrit/index:query_exception",
|
||||
"//java/com/google/gerrit/index/project",
|
||||
"//java/com/google/gerrit/lifecycle",
|
||||
"//java/com/google/gerrit/metrics",
|
||||
"//java/com/google/gerrit/prettify:server",
|
||||
"//java/com/google/gerrit/reviewdb:server",
|
||||
"//java/com/google/gerrit/server",
|
||||
"//java/com/google/gerrit/server/ioutil",
|
||||
"//java/com/google/gerrit/util/cli",
|
||||
"//java/com/google/gerrit/util/ssl",
|
||||
"//java/org/apache/commons/net",
|
||||
"//java/org/eclipse/jgit:server",
|
||||
"//lib:args4j",
|
||||
"//lib:automaton",
|
||||
"//lib:blame-cache",
|
||||
"//lib:grappa",
|
||||
"//lib:gson",
|
||||
"//lib:guava",
|
||||
"//lib:guava-retrying",
|
||||
"//lib:gwtjsonrpc",
|
||||
"//lib:gwtorm",
|
||||
"//lib:jsch",
|
||||
"//lib:juniversalchardet",
|
||||
"//lib:mime-util",
|
||||
"//lib:pegdown",
|
||||
"//lib:protobuf",
|
||||
"//lib:servlet-api-3_1",
|
||||
"//lib:soy",
|
||||
"//lib:tukaani-xz",
|
||||
"//lib/auto:auto-value",
|
||||
"//lib/auto:auto-value-annotations",
|
||||
"//lib/bouncycastle:bcpkix-neverlink",
|
||||
"//lib/bouncycastle:bcprov-neverlink",
|
||||
"//lib/commons:codec",
|
||||
"//lib/commons:compress",
|
||||
"//lib/commons:dbcp",
|
||||
"//lib/commons:lang",
|
||||
"//lib/commons:net",
|
||||
"//lib/commons:validator",
|
||||
"//lib/flogger:api",
|
||||
"//lib/guice",
|
||||
"//lib/guice:guice-assistedinject",
|
||||
"//lib/guice:guice-servlet",
|
||||
"//lib/jgit/org.eclipse.jgit.archive:jgit-archive",
|
||||
"//lib/jgit/org.eclipse.jgit:jgit",
|
||||
"//lib/jsoup",
|
||||
"//lib/log:jsonevent-layout",
|
||||
"//lib/log:log4j",
|
||||
"//lib/lucene:lucene-analyzers-common",
|
||||
"//lib/lucene:lucene-core-and-backward-codecs",
|
||||
"//lib/lucene:lucene-queryparser",
|
||||
"//lib/mime4j:core",
|
||||
"//lib/mime4j:dom",
|
||||
"//lib/ow2:ow2-asm",
|
||||
"//lib/ow2:ow2-asm-tree",
|
||||
"//lib/ow2:ow2-asm-util",
|
||||
"//lib/prolog:runtime",
|
||||
"//proto:cache_java_proto",
|
||||
],
|
||||
)
|
@@ -91,7 +91,6 @@ import com.google.gerrit.server.account.GroupControl;
|
||||
import com.google.gerrit.server.account.GroupIncludeCacheImpl;
|
||||
import com.google.gerrit.server.account.VersionedAuthorizedKeys;
|
||||
import com.google.gerrit.server.account.externalids.ExternalIdModule;
|
||||
import com.google.gerrit.server.audit.AuditModule;
|
||||
import com.google.gerrit.server.auth.AuthBackend;
|
||||
import com.google.gerrit.server.auth.UniversalAuthBackend;
|
||||
import com.google.gerrit.server.auth.oauth.OAuthTokenCache;
|
||||
@@ -301,7 +300,6 @@ public class GerritGlobalModule extends FactoryModule {
|
||||
bind(IdentifiedUser.GenericFactory.class).in(SINGLETON);
|
||||
bind(AccountControl.Factory.class);
|
||||
|
||||
install(new AuditModule());
|
||||
bind(UiActions.class);
|
||||
|
||||
bind(GitReferenceUpdated.class);
|
||||
|
48
java/com/google/gerrit/server/group/GroupAuditService.java
Normal file
48
java/com/google/gerrit/server/group/GroupAuditService.java
Normal file
@@ -0,0 +1,48 @@
|
||||
// Copyright (C) 2018 The Android Open Source Project
|
||||
//
|
||||
// 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 com.google.gerrit.server.group;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.google.gerrit.reviewdb.client.Account;
|
||||
import com.google.gerrit.reviewdb.client.Account.Id;
|
||||
import com.google.gerrit.reviewdb.client.AccountGroup;
|
||||
import java.sql.Timestamp;
|
||||
|
||||
public interface GroupAuditService {
|
||||
|
||||
void dispatchAddMembers(
|
||||
Account.Id actor,
|
||||
AccountGroup.UUID updatedGroup,
|
||||
ImmutableSet<Id> addedMembers,
|
||||
Timestamp addedOn);
|
||||
|
||||
void dispatchDeleteMembers(
|
||||
Account.Id actor,
|
||||
AccountGroup.UUID updatedGroup,
|
||||
ImmutableSet<Account.Id> deletedMembers,
|
||||
Timestamp deletedOn);
|
||||
|
||||
void dispatchAddSubgroups(
|
||||
Account.Id actor,
|
||||
AccountGroup.UUID updatedGroup,
|
||||
ImmutableSet<AccountGroup.UUID> addedSubgroups,
|
||||
Timestamp addedOn);
|
||||
|
||||
void dispatchDeleteSubgroups(
|
||||
Account.Id actor,
|
||||
AccountGroup.UUID updatedGroup,
|
||||
ImmutableSet<AccountGroup.UUID> deletedSubgroups,
|
||||
Timestamp deletedOn);
|
||||
}
|
@@ -31,13 +31,13 @@ import com.google.gerrit.server.account.AccountCache;
|
||||
import com.google.gerrit.server.account.GroupBackend;
|
||||
import com.google.gerrit.server.account.GroupCache;
|
||||
import com.google.gerrit.server.account.GroupIncludeCache;
|
||||
import com.google.gerrit.server.audit.AuditService;
|
||||
import com.google.gerrit.server.config.AllUsersName;
|
||||
import com.google.gerrit.server.config.GerritServerId;
|
||||
import com.google.gerrit.server.extensions.events.GitReferenceUpdated;
|
||||
import com.google.gerrit.server.git.GitRepositoryManager;
|
||||
import com.google.gerrit.server.git.LockFailureException;
|
||||
import com.google.gerrit.server.git.meta.MetaDataUpdate;
|
||||
import com.google.gerrit.server.group.GroupAuditService;
|
||||
import com.google.gerrit.server.group.InternalGroup;
|
||||
import com.google.gerrit.server.index.group.GroupIndexer;
|
||||
import com.google.gerrit.server.update.RefUpdateUtil;
|
||||
@@ -89,7 +89,7 @@ public class GroupsUpdate {
|
||||
private final GroupCache groupCache;
|
||||
private final GroupIncludeCache groupIncludeCache;
|
||||
private final Provider<GroupIndexer> indexer;
|
||||
private final AuditService auditService;
|
||||
private final GroupAuditService groupAuditService;
|
||||
private final RenameGroupOp.Factory renameGroupOpFactory;
|
||||
@Nullable private final IdentifiedUser currentUser;
|
||||
private final AuditLogFormatter auditLogFormatter;
|
||||
@@ -106,7 +106,7 @@ public class GroupsUpdate {
|
||||
GroupCache groupCache,
|
||||
GroupIncludeCache groupIncludeCache,
|
||||
Provider<GroupIndexer> indexer,
|
||||
AuditService auditService,
|
||||
GroupAuditService auditService,
|
||||
AccountCache accountCache,
|
||||
RenameGroupOp.Factory renameGroupOpFactory,
|
||||
@GerritServerId String serverId,
|
||||
@@ -120,7 +120,7 @@ public class GroupsUpdate {
|
||||
this.groupCache = groupCache;
|
||||
this.groupIncludeCache = groupIncludeCache;
|
||||
this.indexer = indexer;
|
||||
this.auditService = auditService;
|
||||
this.groupAuditService = auditService;
|
||||
this.renameGroupOpFactory = renameGroupOpFactory;
|
||||
this.gitRefUpdated = gitRefUpdated;
|
||||
this.retryHelper = retryHelper;
|
||||
@@ -384,14 +384,14 @@ public class GroupsUpdate {
|
||||
}
|
||||
|
||||
if (!createdGroup.getMembers().isEmpty()) {
|
||||
auditService.dispatchAddMembers(
|
||||
groupAuditService.dispatchAddMembers(
|
||||
currentUser.getAccountId(),
|
||||
createdGroup.getGroupUUID(),
|
||||
createdGroup.getMembers(),
|
||||
createdGroup.getCreatedOn());
|
||||
}
|
||||
if (!createdGroup.getSubgroups().isEmpty()) {
|
||||
auditService.dispatchAddSubgroups(
|
||||
groupAuditService.dispatchAddSubgroups(
|
||||
currentUser.getAccountId(),
|
||||
createdGroup.getGroupUUID(),
|
||||
createdGroup.getSubgroups(),
|
||||
@@ -405,19 +405,19 @@ public class GroupsUpdate {
|
||||
}
|
||||
|
||||
if (!result.getAddedMembers().isEmpty()) {
|
||||
auditService.dispatchAddMembers(
|
||||
groupAuditService.dispatchAddMembers(
|
||||
currentUser.getAccountId(), result.getGroupUuid(), result.getAddedMembers(), updatedOn);
|
||||
}
|
||||
if (!result.getDeletedMembers().isEmpty()) {
|
||||
auditService.dispatchDeleteMembers(
|
||||
groupAuditService.dispatchDeleteMembers(
|
||||
currentUser.getAccountId(), result.getGroupUuid(), result.getDeletedMembers(), updatedOn);
|
||||
}
|
||||
if (!result.getAddedSubgroups().isEmpty()) {
|
||||
auditService.dispatchAddSubgroups(
|
||||
groupAuditService.dispatchAddSubgroups(
|
||||
currentUser.getAccountId(), result.getGroupUuid(), result.getAddedSubgroups(), updatedOn);
|
||||
}
|
||||
if (!result.getDeletedSubgroups().isEmpty()) {
|
||||
auditService.dispatchDeleteSubgroups(
|
||||
groupAuditService.dispatchDeleteSubgroups(
|
||||
currentUser.getAccountId(),
|
||||
result.getGroupUuid(),
|
||||
result.getDeletedSubgroups(),
|
||||
|
@@ -11,6 +11,7 @@ java_library(
|
||||
"//java/com/google/gerrit/metrics",
|
||||
"//java/com/google/gerrit/reviewdb:server",
|
||||
"//java/com/google/gerrit/server",
|
||||
"//java/com/google/gerrit/server/audit",
|
||||
"//java/com/google/gerrit/server/cache/h2",
|
||||
"//java/com/google/gerrit/server/git/receive",
|
||||
"//java/com/google/gerrit/server/ioutil",
|
||||
|
@@ -26,6 +26,7 @@ java_library(
|
||||
"//java/com/google/gerrit/server",
|
||||
"//java/com/google/gerrit/server:module",
|
||||
"//java/com/google/gerrit/server/api",
|
||||
"//java/com/google/gerrit/server/audit",
|
||||
"//java/com/google/gerrit/server/cache/h2",
|
||||
"//java/com/google/gerrit/server/cache/mem",
|
||||
"//java/com/google/gerrit/server/restapi",
|
||||
|
@@ -35,6 +35,7 @@ import com.google.gerrit.server.GerritPersonIdentProvider;
|
||||
import com.google.gerrit.server.PluginUser;
|
||||
import com.google.gerrit.server.api.GerritApiModule;
|
||||
import com.google.gerrit.server.api.PluginApiModule;
|
||||
import com.google.gerrit.server.audit.AuditModule;
|
||||
import com.google.gerrit.server.cache.h2.H2CacheModule;
|
||||
import com.google.gerrit.server.cache.mem.DefaultMemoryCacheModule;
|
||||
import com.google.gerrit.server.config.AllProjectsName;
|
||||
@@ -178,6 +179,7 @@ public class InMemoryModule extends FactoryModule {
|
||||
install(new DefaultPermissionBackendModule());
|
||||
install(new SearchingChangeCacheImpl.Module());
|
||||
factory(GarbageCollection.Factory.class);
|
||||
install(new AuditModule());
|
||||
|
||||
bindScope(RequestScoped.class, PerThreadRequestScope.REQUEST);
|
||||
|
||||
|
Reference in New Issue
Block a user