improve modification handler events by sending old and new items to eventbus

This commit is contained in:
Sebastian Sdorra
2014-01-11 13:45:23 +01:00
parent 23d2c1f27c
commit c3100f420c
17 changed files with 361 additions and 252 deletions

View File

@@ -48,7 +48,7 @@ import org.apache.shiro.SecurityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sonia.scm.HandlerEvent;
import sonia.scm.HandlerEventType;
import sonia.scm.event.ScmEventBus;
import sonia.scm.group.GroupEvent;
import sonia.scm.store.ConfigurationEntryStore;
@@ -132,7 +132,7 @@ public class DefaultSecuritySystem implements SecuritySystem
//J-
ScmEventBus.getInstance().post(
new StoredAssignedPermissionEvent(HandlerEvent.CREATE, sap)
new StoredAssignedPermissionEvent(HandlerEventType.CREATE, sap)
);
//J+
@@ -152,7 +152,7 @@ public class DefaultSecuritySystem implements SecuritySystem
store.remove(permission.getId());
//J-
ScmEventBus.getInstance().post(
new StoredAssignedPermissionEvent(HandlerEvent.CREATE, permission)
new StoredAssignedPermissionEvent(HandlerEventType.CREATE, permission)
);
//J+
}
@@ -185,7 +185,7 @@ public class DefaultSecuritySystem implements SecuritySystem
@Subscribe
public void handleEvent(final UserEvent event)
{
if (event.getEventType() == HandlerEvent.DELETE)
if (event.getEventType() == HandlerEventType.DELETE)
{
deletePermissions(new Predicate<AssignedPermission>()
{
@@ -209,7 +209,7 @@ public class DefaultSecuritySystem implements SecuritySystem
@Subscribe
public void handleEvent(final GroupEvent event)
{
if (event.getEventType() == HandlerEvent.DELETE)
if (event.getEventType() == HandlerEventType.DELETE)
{
deletePermissions(new Predicate<AssignedPermission>()
{
@@ -243,7 +243,7 @@ public class DefaultSecuritySystem implements SecuritySystem
//J-
ScmEventBus.getInstance().post(
new StoredAssignedPermissionEvent(HandlerEvent.CREATE, permission)
new StoredAssignedPermissionEvent(HandlerEventType.CREATE, permission)
);
//J+
}

View File

@@ -58,7 +58,7 @@ import org.apache.shiro.subject.SimplePrincipalCollection;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sonia.scm.HandlerEvent;
import sonia.scm.HandlerEventType;
import sonia.scm.config.ScmConfiguration;
import sonia.scm.group.Group;
import sonia.scm.group.GroupManager;
@@ -121,9 +121,8 @@ public class ScmRealm extends AuthorizingRealm
*/
@Inject
public ScmRealm(ScmConfiguration configuration,
LoginAttemptHandler loginAttemptHandler,
AuthorizationCollector collector,UserManager userManager,
GroupManager groupManager, UserDAO userDAO,
LoginAttemptHandler loginAttemptHandler, AuthorizationCollector collector,
UserManager userManager, GroupManager groupManager, UserDAO userDAO,
AuthenticationManager authenticator, RepositoryManager manager,
Provider<HttpServletRequest> requestProvider,
Provider<HttpServletResponse> responseProvider)
@@ -149,8 +148,6 @@ public class ScmRealm extends AuthorizingRealm
// set components
setPermissionResolver(new RepositoryPermissionResolver());
}
private final LoginAttemptHandler loginAttemptHandler;
//~--- methods --------------------------------------------------------------
@@ -174,7 +171,7 @@ public class ScmRealm extends AuthorizingRealm
{
throw new UnsupportedTokenException("ScmAuthenticationToken is required");
}
loginAttemptHandler.beforeAuthentication(authToken);
UsernamePasswordToken token = (UsernamePasswordToken) authToken;
@@ -198,6 +195,7 @@ public class ScmRealm extends AuthorizingRealm
else
{
loginAttemptHandler.onUnsuccessfulAuthentication(authToken, result);
throw new AccountException("authentication failed");
}
@@ -257,9 +255,10 @@ public class ScmRealm extends AuthorizingRealm
user.setCreationDate(System.currentTimeMillis());
// TODO find a better way
UserEventHack.fireEvent(userManager, user, HandlerEvent.BEFORE_CREATE);
UserEventHack.fireEvent(userManager, HandlerEventType.BEFORE_CREATE,
user);
userDAO.add(user);
UserEventHack.fireEvent(userManager, user, HandlerEvent.CREATE);
UserEventHack.fireEvent(userManager, HandlerEventType.CREATE, user);
}
else if (logger.isErrorEnabled())
{
@@ -547,6 +546,9 @@ public class ScmRealm extends AuthorizingRealm
/** Field description */
private final GroupManager groupManager;
/** Field description */
private final LoginAttemptHandler loginAttemptHandler;
/** Field description */
private final Provider<HttpServletRequest> requestProvider;