mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-12 00:15:44 +01:00
improve logging
This commit is contained in:
@@ -35,7 +35,6 @@ package sonia.scm.security;
|
|||||||
|
|
||||||
//~--- non-JDK imports --------------------------------------------------------
|
//~--- non-JDK imports --------------------------------------------------------
|
||||||
|
|
||||||
import com.google.common.base.Joiner;
|
|
||||||
import com.google.common.base.Objects;
|
import com.google.common.base.Objects;
|
||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
@@ -180,7 +179,7 @@ public class AuthorizationCollector
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logger.debug("invalidate cache of user {}, because of a user event", username);
|
logger.debug("invalidate cache of user {}, because of user {} event", username, event.getEventType());
|
||||||
invalidateUserCache(username);
|
invalidateUserCache(username);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -231,14 +230,14 @@ public class AuthorizationCollector
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
logger.debug(
|
logger.debug(
|
||||||
"cache of repository {} is not invalidated, because non relevant fields have changed",
|
"cache is not invalidated, because non relevant field of repository {} has changed",
|
||||||
repository.getName()
|
repository.getName()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logger.debug("clear cache, because repository {} has changed", repository.getName());
|
logger.debug("clear cache, received {} event of repository {}", event.getEventType(), repository.getName());
|
||||||
cache.clear();
|
cache.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -271,7 +270,7 @@ public class AuthorizationCollector
|
|||||||
StoredAssignedPermission permission = event.getPermission();
|
StoredAssignedPermission permission = event.getPermission();
|
||||||
if (permission.isGroupPermission())
|
if (permission.isGroupPermission())
|
||||||
{
|
{
|
||||||
logger.debug("clears the whole cache, because global group permission {} has changed", permission.getId());
|
logger.debug("clear cache, because global group permission {} has changed", permission.getId());
|
||||||
cache.clear();
|
cache.clear();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -312,14 +311,14 @@ public class AuthorizationCollector
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
logger.debug(
|
logger.debug(
|
||||||
"cache of group {} is not invalidated, because non relevant fields have changed",
|
"cache is not invalidated, because non relevant field of group {} has changed",
|
||||||
group.getId()
|
group.getId()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logger.debug("clear cache, because group {} has changed", group.getId());
|
logger.debug("clear cache, received group event {} for group {}", event.getEventType(), group.getId());
|
||||||
cache.clear();
|
cache.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -363,36 +362,9 @@ public class AuthorizationCollector
|
|||||||
{
|
{
|
||||||
logger.trace("retrieve AuthorizationInfo for user {} from cache", user.getName());
|
logger.trace("retrieve AuthorizationInfo for user {} from cache", user.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (logger.isTraceEnabled()){
|
|
||||||
logger.trace(createAuthorizationSummary(user, groupNames, info));
|
|
||||||
}
|
|
||||||
|
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String createAuthorizationSummary(User user, GroupNames groups, AuthorizationInfo authzInfo)
|
|
||||||
{
|
|
||||||
StringBuilder buffer = new StringBuilder("authorization summary: ");
|
|
||||||
buffer.append(SEPARATOR).append("username : ").append(user.getName());
|
|
||||||
buffer.append(SEPARATOR).append("groups : ");
|
|
||||||
append(buffer, groups);
|
|
||||||
buffer.append(SEPARATOR).append("roles : ");
|
|
||||||
append(buffer, authzInfo.getRoles());
|
|
||||||
buffer.append(SEPARATOR).append("permissions:");
|
|
||||||
append(buffer, authzInfo.getStringPermissions());
|
|
||||||
append(buffer, authzInfo.getObjectPermissions());
|
|
||||||
return buffer.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void append(StringBuilder buffer, Iterable<?> iterable){
|
|
||||||
if (iterable != null){
|
|
||||||
for ( Object item : iterable )
|
|
||||||
{
|
|
||||||
buffer.append(SEPARATOR).append(" - ").append(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method description
|
* Method description
|
||||||
@@ -549,9 +521,36 @@ public class AuthorizationCollector
|
|||||||
|
|
||||||
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(roles);
|
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(roles);
|
||||||
info.addObjectPermissions(permissions);
|
info.addObjectPermissions(permissions);
|
||||||
|
|
||||||
|
if (logger.isTraceEnabled()){
|
||||||
|
logger.trace(createAuthorizationSummary(user, groups, info));
|
||||||
|
}
|
||||||
|
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String createAuthorizationSummary(User user, GroupNames groups, AuthorizationInfo authzInfo)
|
||||||
|
{
|
||||||
|
StringBuilder buffer = new StringBuilder("authorization summary: ");
|
||||||
|
buffer.append(SEPARATOR).append("username : ").append(user.getName());
|
||||||
|
buffer.append(SEPARATOR).append("groups : ");
|
||||||
|
append(buffer, groups);
|
||||||
|
buffer.append(SEPARATOR).append("roles : ");
|
||||||
|
append(buffer, authzInfo.getRoles());
|
||||||
|
buffer.append(SEPARATOR).append("permissions:");
|
||||||
|
append(buffer, authzInfo.getStringPermissions());
|
||||||
|
append(buffer, authzInfo.getObjectPermissions());
|
||||||
|
return buffer.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void append(StringBuilder buffer, Iterable<?> iterable){
|
||||||
|
if (iterable != null){
|
||||||
|
for ( Object item : iterable )
|
||||||
|
{
|
||||||
|
buffer.append(SEPARATOR).append(" - ").append(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//~--- get methods ----------------------------------------------------------
|
//~--- get methods ----------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -54,6 +54,7 @@
|
|||||||
|
|
||||||
<logger name="sonia.scm.security.AuthorizationCollector" level="DEBUG" />
|
<logger name="sonia.scm.security.AuthorizationCollector" level="DEBUG" />
|
||||||
<logger name="sonia.scm.web.filter.AutoLoginFilter" level="DEBUG" />
|
<logger name="sonia.scm.web.filter.AutoLoginFilter" level="DEBUG" />
|
||||||
|
<logger name="sonia.scm.security.XsrfProtectionFilter" level="DEBUG" />
|
||||||
|
|
||||||
<!-- suppress massive gzip logging -->
|
<!-- suppress massive gzip logging -->
|
||||||
<logger name="sonia.scm.filter.GZipFilter" level="WARN" />
|
<logger name="sonia.scm.filter.GZipFilter" level="WARN" />
|
||||||
|
|||||||
@@ -223,6 +223,18 @@ public class AuthorizationCollectorTest {
|
|||||||
repositoryModified.setPermissions(Lists.newArrayList(new sonia.scm.repository.Permission("test123")));
|
repositoryModified.setPermissions(Lists.newArrayList(new sonia.scm.repository.Permission("test123")));
|
||||||
collector.onEvent(new RepositoryModificationEvent(repositoryModified, repository, HandlerEvent.CREATE));
|
collector.onEvent(new RepositoryModificationEvent(repositoryModified, repository, HandlerEvent.CREATE));
|
||||||
verify(cache).clear();
|
verify(cache).clear();
|
||||||
|
|
||||||
|
repositoryModified.setPermissions(
|
||||||
|
Lists.newArrayList(new sonia.scm.repository.Permission("test", PermissionType.READ, true))
|
||||||
|
);
|
||||||
|
collector.onEvent(new RepositoryModificationEvent(repositoryModified, repository, HandlerEvent.CREATE));
|
||||||
|
verify(cache, times(2)).clear();
|
||||||
|
|
||||||
|
repositoryModified.setPermissions(
|
||||||
|
Lists.newArrayList(new sonia.scm.repository.Permission("test", PermissionType.WRITE))
|
||||||
|
);
|
||||||
|
collector.onEvent(new RepositoryModificationEvent(repositoryModified, repository, HandlerEvent.CREATE));
|
||||||
|
verify(cache, times(3)).clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user