merge repository heads

This commit is contained in:
Sebastian Sdorra
2016-06-29 20:40:37 +02:00
32 changed files with 153 additions and 106 deletions

View File

@@ -6,13 +6,13 @@
<parent>
<groupId>sonia.scm</groupId>
<artifactId>scm</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm.maven</groupId>
<artifactId>scm-maven-plugins</artifactId>
<packaging>pom</packaging>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-maven-plugins</name>
<modules>

View File

@@ -6,12 +6,12 @@
<parent>
<artifactId>scm-maven-plugins</artifactId>
<groupId>sonia.scm.maven</groupId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm.maven</groupId>
<artifactId>scm-maven-plugin</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<packaging>maven-plugin</packaging>
<name>scm-maven-plugin</name>

View File

@@ -6,12 +6,12 @@
<parent>
<artifactId>scm-maven-plugins</artifactId>
<groupId>sonia.scm.maven</groupId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm.maven</groupId>
<artifactId>scm-plugin-archetype</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-plugin-archetype</name>
</project>

View File

@@ -6,7 +6,7 @@
<groupId>sonia.scm</groupId>
<artifactId>scm</artifactId>
<packaging>pom</packaging>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<description>
The easiest way to share your Git, Mercurial
and Subversion repositories over http.

View File

@@ -6,13 +6,13 @@
<parent>
<groupId>sonia.scm</groupId>
<artifactId>scm</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm.clients</groupId>
<artifactId>scm-clients</artifactId>
<packaging>pom</packaging>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-clients</name>
<modules>
@@ -32,7 +32,7 @@
<artifactId>scm-core</artifactId>
<groupId>sonia.scm</groupId>
<type>jar</type>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<exclusions>
<exclusion>
<artifactId>shiro-core</artifactId>

View File

@@ -6,12 +6,12 @@
<parent>
<artifactId>scm-clients</artifactId>
<groupId>sonia.scm.clients</groupId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm.clients</groupId>
<artifactId>scm-cli-client</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-cli-client</name>
<dependencies>
@@ -34,7 +34,7 @@
<dependency>
<groupId>sonia.scm.clients</groupId>
<artifactId>scm-client-impl</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</dependency>
<dependency>

View File

@@ -6,13 +6,13 @@
<parent>
<groupId>sonia.scm.clients</groupId>
<artifactId>scm-clients</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm.clients</groupId>
<artifactId>scm-client-api</artifactId>
<packaging>jar</packaging>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-client-api</name>
<dependencies>

View File

@@ -6,13 +6,13 @@
<parent>
<groupId>sonia.scm.clients</groupId>
<artifactId>scm-clients</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm.clients</groupId>
<artifactId>scm-client-impl</artifactId>
<packaging>jar</packaging>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-client-impl</name>
<dependencies>
@@ -36,7 +36,7 @@
<dependency>
<groupId>sonia.scm.clients</groupId>
<artifactId>scm-client-api</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</dependency>
<dependency>
@@ -70,7 +70,7 @@
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-test</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<scope>test</scope>
</dependency>

View File

@@ -6,12 +6,12 @@
<parent>
<artifactId>scm</artifactId>
<groupId>sonia.scm</groupId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm</groupId>
<artifactId>scm-core</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-core</name>
<dependencies>

View File

@@ -136,8 +136,9 @@ public class Permission implements PermissionObject, Serializable
final Permission other = (Permission) obj;
return Objects.equal(name, other.name) && Objects.equal(type, other.type)
&& Objects.equal(groupPermission, groupPermission);
return Objects.equal(name, other.name)
&& Objects.equal(type, other.type)
&& Objects.equal(groupPermission, other.groupPermission);
}
/**

View File

@@ -6,12 +6,12 @@
<parent>
<groupId>sonia.scm</groupId>
<artifactId>scm</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm</groupId>
<artifactId>scm-dao-orientdb</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-dao-orientdb</name>
<dependencies>
@@ -26,7 +26,7 @@
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-core</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</dependency>
<dependency>
@@ -52,7 +52,7 @@
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-test</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<scope>test</scope>
</dependency>

View File

@@ -6,12 +6,12 @@
<parent>
<groupId>sonia.scm</groupId>
<artifactId>scm</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm</groupId>
<artifactId>scm-dao-xml</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-dao-xml</name>
<dependencies>
@@ -26,7 +26,7 @@
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-core</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</dependency>
<!-- test -->
@@ -34,7 +34,7 @@
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-test</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<scope>test</scope>
</dependency>

View File

@@ -6,13 +6,13 @@
<parent>
<artifactId>scm</artifactId>
<groupId>sonia.scm</groupId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm</groupId>
<artifactId>scm-plugin-backend</artifactId>
<packaging>war</packaging>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>${project.artifactId}</name>
<dependencies>
@@ -62,7 +62,7 @@
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-core</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</dependency>
<dependency>

View File

@@ -6,13 +6,13 @@
<parent>
<groupId>sonia.scm</groupId>
<artifactId>scm</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm.plugins</groupId>
<artifactId>scm-plugins</artifactId>
<packaging>pom</packaging>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-plugins</name>
<modules>
@@ -26,7 +26,7 @@
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-core</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</dependency>
</dependencies>
@@ -59,7 +59,7 @@
<plugin>
<groupId>sonia.scm.maven</groupId>
<artifactId>scm-maven-plugin</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<executions>
<execution>
<phase>process-resources</phase>

View File

@@ -6,12 +6,12 @@
<parent>
<artifactId>scm-plugins</artifactId>
<groupId>sonia.scm.plugins</groupId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm.plugins</groupId>
<artifactId>scm-git-plugin</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-git-plugin</name>
<url>https://bitbucket.org/sdorra/scm-manager</url>
<description>Plugin for the version control system Git</description>
@@ -48,7 +48,7 @@
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-test</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<scope>test</scope>
</dependency>

View File

@@ -6,12 +6,12 @@
<parent>
<groupId>sonia.scm.plugins</groupId>
<artifactId>scm-plugins</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm.plugins</groupId>
<artifactId>scm-hg-plugin</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-hg-plugin</name>
<url>https://bitbucket.org/sdorra/scm-manager</url>
<description>Plugin for the version control system Mercurial</description>
@@ -42,7 +42,7 @@
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-test</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<scope>test</scope>
</dependency>

View File

@@ -6,12 +6,12 @@
<parent>
<artifactId>scm-plugins</artifactId>
<groupId>sonia.scm.plugins</groupId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm.plugins</groupId>
<artifactId>scm-svn-plugin</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-svn-plugin</name>
<url>https://bitbucket.org/sdorra/scm-manager</url>
<description>Plugin for the version control system Subversion</description>
@@ -48,7 +48,7 @@
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-test</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<scope>test</scope>
</dependency>

View File

@@ -6,13 +6,13 @@
<parent>
<groupId>sonia.scm</groupId>
<artifactId>scm</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm.samples</groupId>
<artifactId>scm-samples</artifactId>
<packaging>pom</packaging>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-samples</name>
<modules>

View File

@@ -6,12 +6,12 @@
<parent>
<artifactId>scm-samples</artifactId>
<groupId>sonia.scm.samples</groupId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm.sample</groupId>
<artifactId>scm-sample-auth</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-sample-auth</name>
<description>Sample Authentication Plugin</description>
<url>https://bitbucket.org/sdorra/scm-manager</url>
@@ -28,7 +28,7 @@
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-core</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</dependency>
</dependencies>

View File

@@ -6,12 +6,12 @@
<parent>
<artifactId>scm-samples</artifactId>
<groupId>sonia.scm.samples</groupId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm.sample</groupId>
<artifactId>scm-sample-hello</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-sample-hello</name>
<description>A simple hello world plugin</description>
<url>https://bitbucket.org/sdorra/scm-manager</url>
@@ -28,7 +28,7 @@
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-core</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</dependency>
</dependencies>

View File

@@ -6,12 +6,12 @@
<parent>
<artifactId>scm</artifactId>
<groupId>sonia.scm</groupId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm</groupId>
<artifactId>scm-server</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-server</name>
<packaging>jar</packaging>

View File

@@ -6,12 +6,12 @@
<parent>
<artifactId>scm</artifactId>
<groupId>sonia.scm</groupId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm</groupId>
<artifactId>scm-test</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-test</name>
<dependencies>
@@ -25,7 +25,7 @@
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-core</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</dependency>
<dependency>

View File

@@ -6,13 +6,13 @@
<parent>
<groupId>sonia.scm</groupId>
<artifactId>scm</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm</groupId>
<artifactId>scm-webapp</artifactId>
<packaging>war</packaging>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-webapp</name>
<dependencies>
@@ -38,31 +38,31 @@
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-core</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-dao-xml</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>sonia.scm.plugins</groupId>
<artifactId>scm-hg-plugin</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>sonia.scm.plugins</groupId>
<artifactId>scm-svn-plugin</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>sonia.scm.plugins</groupId>
<artifactId>scm-git-plugin</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</dependency>
<!-- security -->
@@ -286,7 +286,7 @@
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-test</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<scope>test</scope>
<exclusions>
<exclusion>
@@ -299,7 +299,7 @@
<dependency>
<groupId>sonia.scm.plugins</groupId>
<artifactId>scm-git-plugin</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
@@ -307,7 +307,7 @@
<dependency>
<groupId>sonia.scm.plugins</groupId>
<artifactId>scm-hg-plugin</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
@@ -315,7 +315,7 @@
<dependency>
<groupId>sonia.scm.plugins</groupId>
<artifactId>scm-svn-plugin</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
@@ -547,7 +547,7 @@
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-dao-orientdb</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</dependency>
</dependencies>

View File

@@ -72,6 +72,10 @@ public class MDCFilter extends HttpFilter
/** url of the current request */
@VisibleForTesting
static final String MDC_REQUEST_URI = "request_uri";
/** request method */
@VisibleForTesting
static final String MDC_REQUEST_METHOD = "request_method";
/** Field description */
@VisibleForTesting
@@ -98,6 +102,7 @@ public class MDCFilter extends HttpFilter
MDC.put(MDC_USERNAME, getUsername());
MDC.put(MDC_CLIEN_IP, request.getRemoteAddr());
MDC.put(MDC_CLIEN_HOST, request.getRemoteHost());
MDC.put(MDC_REQUEST_METHOD, request.getMethod());
MDC.put(MDC_REQUEST_URI, request.getRequestURI());
try
@@ -109,6 +114,7 @@ public class MDCFilter extends HttpFilter
MDC.remove(MDC_USERNAME);
MDC.remove(MDC_CLIEN_IP);
MDC.remove(MDC_CLIEN_HOST);
MDC.remove(MDC_REQUEST_METHOD);
MDC.remove(MDC_REQUEST_URI);
}
}

View File

@@ -918,7 +918,8 @@ public class DefaultRepositoryManager extends AbstractRepositoryManager
if (!isPermitted(repository, PermissionType.OWNER))
{
throw new ScmSecurityException(
"owner permission is required, access denied");
"owner permission is required, owner access to repository " + repository.getName() + " denied"
);
}
}
@@ -933,7 +934,8 @@ public class DefaultRepositoryManager extends AbstractRepositoryManager
if (!isReader(repository))
{
throw new ScmSecurityException(
"reader permission is required, access denied");
"reader permission is required, access to repository " + repository.getName() + " denied"
);
}
}

View File

@@ -85,6 +85,9 @@ import sonia.scm.user.UserModificationEvent;
public class AuthorizationCollector
{
// TODO move to util class
private static final String SEPARATOR = System.getProperty("line.separator", "\n");
/** Field description */
private static final String CACHE_NAME = "sonia.cache.authorizing";
@@ -166,15 +169,17 @@ public class AuthorizationCollector
User beforeModification = ((UserModificationEvent) event).getItemBeforeModification();
if (shouldCacheBeCleared(user, beforeModification))
{
logger.debug("invalidate cache of user {}, because of a permission relevant field has changed", username);
invalidateUserCache(username);
}
else
{
logger.debug("cache of user {} is not invalidated, because admin and active flag has not changed", username);
logger.debug("cache of user {} is not invalidated, because no permission relevant field has changed", username);
}
}
else
{
logger.debug("invalidate cache of user {}, because of user {} event", username, event.getEventType());
invalidateUserCache(username);
}
}
@@ -187,7 +192,6 @@ public class AuthorizationCollector
private void invalidateUserCache(final String username)
{
logger.debug("invalidate cache of user {}, because of a event which could change the permissions", username);
cache.removeAll(new Filter<CacheKey>()
{
@Override
@@ -214,11 +218,7 @@ public class AuthorizationCollector
if (event.getEventType().isPost())
{
Repository repository = event.getItem();
if (logger.isDebugEnabled())
{
logger.debug("clear cache, because repository {} has changed", repository.getName());
}
if (event instanceof RepositoryModificationEvent)
{
Repository beforeModification = ((RepositoryModificationEvent) event).getItemBeforeModification();
@@ -230,14 +230,14 @@ public class AuthorizationCollector
else
{
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()
);
}
}
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();
}
}
@@ -262,20 +262,18 @@ public class AuthorizationCollector
{
if (event.getEventType().isPost())
{
if (logger.isDebugEnabled())
{
logger.debug("clear cache, because permission {} has changed",
event.getPermission().getId());
}
StoredAssignedPermission permission = event.getPermission();
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();
}
else
{
logger.debug(
"clear cache of user {}, because permission {} has changed",
permission.getName(), event.getPermission().getId()
);
invalidateUserCache(permission.getName());
}
}
@@ -308,14 +306,14 @@ public class AuthorizationCollector
else
{
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()
);
}
}
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();
}
}
@@ -351,18 +349,13 @@ public class AuthorizationCollector
if (info == null)
{
if (logger.isTraceEnabled())
{
logger.trace("collect AuthorizationInfo for user {}", user.getName());
}
logger.trace("collect AuthorizationInfo for user {}", user.getName());
info = createAuthorizationInfo(user, groupNames);
cache.put(cacheKey, info);
}
else if (logger.isTraceEnabled())
{
logger.trace("retrieve AuthorizationInfo for user {} from cache",
user.getName());
logger.trace("retrieve AuthorizationInfo for user {} from cache", user.getName());
}
return info;
@@ -522,11 +515,37 @@ public class AuthorizationCollector
}
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(roles);
info.addObjectPermissions(permissions);
if (logger.isTraceEnabled()){
logger.trace(createAuthorizationSummary(user, groups, 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 ----------------------------------------------------------

View File

@@ -52,6 +52,10 @@
<logger name="sonia.scm" level="TRACE" />
<logger name="sonia.scm.security.AuthorizationCollector" level="DEBUG" />
<logger name="sonia.scm.web.filter.AutoLoginFilter" level="DEBUG" />
<logger name="sonia.scm.security.XsrfProtectionFilter" level="DEBUG" />
<!-- suppress massive gzip logging -->
<logger name="sonia.scm.filter.GZipFilter" level="WARN" />
<logger name="sonia.scm.filter.GZipResponseStream" level="WARN" />

View File

@@ -41,6 +41,7 @@ Sonia.panel.SyntaxHighlighterPanel = Ext.extend(Ext.Panel, {
fileName: 'shBrushAppleScript.js'
},{
name: 'Bash/shell',
brush: 'shell',
aliases: ['sh', 'bash', 'shell'],
fileName: 'shBrushBash.js'
},{

View File

@@ -87,6 +87,7 @@ public class MDCFilterTest extends AbstractTestBase {
when(request.getRequestURI()).thenReturn("api/v1/repositories");
when(request.getRemoteAddr()).thenReturn("127.0.0.1");
when(request.getRemoteHost()).thenReturn("localhost");
when(request.getMethod()).thenReturn("GET");
MDCCapturingFilterChain chain = new MDCCapturingFilterChain();
filter.doFilter(request, response, chain);
@@ -96,6 +97,7 @@ public class MDCFilterTest extends AbstractTestBase {
assertEquals("api/v1/repositories", chain.ctx.get(MDCFilter.MDC_REQUEST_URI));
assertEquals("127.0.0.1", chain.ctx.get(MDCFilter.MDC_CLIEN_IP));
assertEquals("localhost", chain.ctx.get(MDCFilter.MDC_CLIEN_HOST));
assertEquals("GET", chain.ctx.get(MDCFilter.MDC_REQUEST_METHOD));
}
/**

View File

@@ -223,6 +223,18 @@ public class AuthorizationCollectorTest {
repositoryModified.setPermissions(Lists.newArrayList(new sonia.scm.repository.Permission("test123")));
collector.onEvent(new RepositoryModificationEvent(repositoryModified, repository, HandlerEvent.CREATE));
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();
}
/**

View File

@@ -6,13 +6,13 @@
<parent>
<groupId>sonia.scm</groupId>
<artifactId>scm</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm.support</groupId>
<artifactId>scm-support</artifactId>
<packaging>pom</packaging>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<name>scm-support</name>
<modules>

View File

@@ -4,12 +4,12 @@
<parent>
<groupId>sonia.scm.support</groupId>
<artifactId>scm-support</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</parent>
<groupId>sonia.scm</groupId>
<artifactId>scm-support-btrace</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
<packaging>jar</packaging>
<name>scm-support-btrace</name>
@@ -18,7 +18,7 @@
<dependency>
<groupId>sonia.scm</groupId>
<artifactId>scm-core</artifactId>
<version>1.48-SNAPSHOT</version>
<version>1.49-SNAPSHOT</version>
</dependency>
<!-- servlet api -->