bug5197: RemoveAccessTokenOperation

This commit is contained in:
Tim Hessenmüller committed 2020-03-19 14:05:36 +01:00
1 parent 6d8b531ab2
commit db0e100cb4
2 files changed
+22 -1

No files matched your search

@@ -120,6 +120,7 @@ import com.sap.sse.security.operations.DeleteRoleDefinitionOperation;
import com.sap.sse.security.operations.DeleteUserGroupOperation;
import com.sap.sse.security.operations.DeleteUserOperation;
import com.sap.sse.security.operations.PutRoleDefinitionToUserGroupOperation;
import com.sap.sse.security.operations.RemoveAccessTokenOperation;
import com.sap.sse.security.operations.RemovePermissionForUserOperation;
import com.sap.sse.security.operations.RemoveRoleDefinitionFromUserGroupOperation;
import com.sap.sse.security.operations.RemoveRoleFromUserOperation;
@@ -1683,7 +1684,7 @@ public class SecurityServiceImpl implements ReplicableSecurityService, ClearStat
public void removeAccessToken(String username) {
Subject subject = SecurityUtils.getSubject();
if (hasCurrentUserUpdatePermission(getUserByName(username))) {
apply(s -> s.internalRemoveAccessToken(username));
apply(new RemoveAccessTokenOperation(username));
} else {
throw new org.apache.shiro.authz.AuthorizationException("User " + subject.getPrincipal().toString()
+ " does not have permission to remove access token of user " + username);
@@ -0,0 +1,20 @@
package com.sap.sse.security.operations;
import com.sap.sse.replication.OperationWithResult;
import com.sap.sse.security.impl.ReplicableSecurityService;
public class RemoveAccessTokenOperation implements OperationWithResult<ReplicableSecurityService, Void> {
private static final long serialVersionUID = 1L;
protected final String username;
public RemoveAccessTokenOperation(String username) {
this.username = username;
}
@Override
public Void internalApplyTo(ReplicableSecurityService toState) throws Exception {
toState.internalRemoveAccessToken(username);
return null;
}
}