This commit is contained in:
Sebastian Sdorra
2013-05-02 08:43:23 +02:00
parent f4b0aa37da
commit c0eb4c3859
7 changed files with 85 additions and 136 deletions

View File

@@ -45,6 +45,7 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
/** /**
* Permission object which is assigned to a specific user or group.
* *
* @author Sebastian Sdorra * @author Sebastian Sdorra
* @since 1.31 * @since 1.31
@@ -54,7 +55,7 @@ import javax.xml.bind.annotation.XmlRootElement;
public class AssignedPermission implements PermissionObject, Serializable public class AssignedPermission implements PermissionObject, Serializable
{ {
/** Field description */ /** serial version uid */
private static final long serialVersionUID = -7411338422110323879L; private static final long serialVersionUID = -7411338422110323879L;
//~--- constructors --------------------------------------------------------- //~--- constructors ---------------------------------------------------------
@@ -66,10 +67,10 @@ public class AssignedPermission implements PermissionObject, Serializable
public AssignedPermission() {} public AssignedPermission() {}
/** /**
* Constructs ... * Constructs a new AssignedPermission.
* *
* *
* @param permission * @param permission assigned permission
*/ */
public AssignedPermission(AssignedPermission permission) public AssignedPermission(AssignedPermission permission)
{ {
@@ -79,11 +80,11 @@ public class AssignedPermission implements PermissionObject, Serializable
} }
/** /**
* Constructs ... * Constructs a new AssingnedPermmission.
* *
* *
* @param name * @param name name of the user
* @param permission * @param permission permission string
*/ */
public AssignedPermission(String name, String permission) public AssignedPermission(String name, String permission)
{ {
@@ -92,12 +93,12 @@ public class AssignedPermission implements PermissionObject, Serializable
} }
/** /**
* Constructs ... * Constructs a new AssingnedPermmission.
* *
* *
* @param name * @param name name of the user or group
* @param groupPermission * @param groupPermission true if the permission should be assigned to a group
* @param permission * @param permission permission string
*/ */
public AssignedPermission(String name, boolean groupPermission, public AssignedPermission(String name, boolean groupPermission,
String permission) String permission)
@@ -110,12 +111,7 @@ public class AssignedPermission implements PermissionObject, Serializable
//~--- methods -------------------------------------------------------------- //~--- methods --------------------------------------------------------------
/** /**
* Method description * {@inheritDoc}
*
*
* @param obj
*
* @return
*/ */
@Override @Override
public boolean equals(Object obj) public boolean equals(Object obj)
@@ -138,10 +134,7 @@ public class AssignedPermission implements PermissionObject, Serializable
} }
/** /**
* Method description * {@inheritDoc}
*
*
* @return
*/ */
@Override @Override
public int hashCode() public int hashCode()
@@ -150,10 +143,7 @@ public class AssignedPermission implements PermissionObject, Serializable
} }
/** /**
* Method description * {@inheritDoc}
*
*
* @return
*/ */
@Override @Override
public String toString() public String toString()
@@ -170,10 +160,10 @@ public class AssignedPermission implements PermissionObject, Serializable
//~--- get methods ---------------------------------------------------------- //~--- get methods ----------------------------------------------------------
/** /**
* Method description * Returns the name of the user or group which the permission is assigned.
* *
* *
* @return * @return name of user or group
*/ */
@Override @Override
public String getName() public String getName()
@@ -182,10 +172,10 @@ public class AssignedPermission implements PermissionObject, Serializable
} }
/** /**
* Method description * Returns the string representation of the permission.
* *
* *
* @return * @return string representation of the permission
*/ */
public String getPermission() public String getPermission()
{ {
@@ -193,10 +183,10 @@ public class AssignedPermission implements PermissionObject, Serializable
} }
/** /**
* Method description * Returns true if the permission is assigned to a group.
* *
* *
* @return * @return true if the permission is assigned to a group
*/ */
@Override @Override
public boolean isGroupPermission() public boolean isGroupPermission()
@@ -206,13 +196,13 @@ public class AssignedPermission implements PermissionObject, Serializable
//~--- fields --------------------------------------------------------------- //~--- fields ---------------------------------------------------------------
/** Field description */ /** group permission indicator */
@XmlElement(name = "group-permission") @XmlElement(name = "group-permission")
private boolean groupPermission; private boolean groupPermission;
/** Field description */ /** name of the user or group */
private String name; private String name;
/** Field description */ /** string representation of the permission */
private String permission; private String permission;
} }

View File

@@ -45,6 +45,7 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
/** /**
* Descriptor for available permission objects.
* *
* @author Sebastian Sdorra * @author Sebastian Sdorra
* @since 1.31 * @since 1.31
@@ -84,12 +85,7 @@ public class PermissionDescriptor implements Serializable
//~--- methods -------------------------------------------------------------- //~--- methods --------------------------------------------------------------
/** /**
* Method description * {@inheritDoc}
*
*
* @param obj
*
* @return
*/ */
@Override @Override
public boolean equals(Object obj) public boolean equals(Object obj)
@@ -112,10 +108,7 @@ public class PermissionDescriptor implements Serializable
} }
/** /**
* Method description * {@inheritDoc}
*
*
* @return
*/ */
@Override @Override
public int hashCode() public int hashCode()
@@ -124,10 +117,7 @@ public class PermissionDescriptor implements Serializable
} }
/** /**
* Method description * {@inheritDoc}
*
*
* @return
*/ */
@Override @Override
public String toString() public String toString()
@@ -146,10 +136,10 @@ public class PermissionDescriptor implements Serializable
//~--- get methods ---------------------------------------------------------- //~--- get methods ----------------------------------------------------------
/** /**
* Method description * Returns the description of the permission.
* *
* *
* @return * @return description
*/ */
public String getDescription() public String getDescription()
{ {
@@ -157,10 +147,10 @@ public class PermissionDescriptor implements Serializable
} }
/** /**
* Method description * Returns the display name of the permission.
* *
* *
* @return * @return display name
*/ */
public String getDisplayName() public String getDisplayName()
{ {
@@ -168,10 +158,10 @@ public class PermissionDescriptor implements Serializable
} }
/** /**
* Method description * Returns the string representation of the permission.
* *
* *
* @return * @return string representation
*/ */
public String getValue() public String getValue()
{ {
@@ -180,13 +170,13 @@ public class PermissionDescriptor implements Serializable
//~--- fields --------------------------------------------------------------- //~--- fields ---------------------------------------------------------------
/** Field description */ /** description */
private String description; private String description;
/** Field description */ /** display name */
@XmlElement(name = "display-name") @XmlElement(name = "display-name")
private String displayName; private String displayName;
/** Field description */ /** value */
private String value; private String value;
} }

View File

@@ -32,6 +32,7 @@
package sonia.scm.security; package sonia.scm.security;
/** /**
* Interface for permission objects.
* *
* @author Sebastian Sdorra * @author Sebastian Sdorra
* @since 1.31 * @since 1.31
@@ -40,18 +41,18 @@ public interface PermissionObject
{ {
/** /**
* Method description * Returns the name of the user or group which the permission is assigned.
* *
* *
* @return * @return name of user or group
*/ */
public String getName(); public String getName();
/** /**
* Method description * Returns the id of the stored permission object.
* *
* *
* @return * @return id of permission
*/ */
public boolean isGroupPermission(); public boolean isGroupPermission();
} }

View File

@@ -35,13 +35,12 @@ package sonia.scm.security;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import org.apache.shiro.subject.PrincipalCollection;
//~--- JDK imports ------------------------------------------------------------ //~--- JDK imports ------------------------------------------------------------
import java.util.List; import java.util.List;
/** /**
* The SecuritySystem manages global permissions.
* *
* @author Sebastian Sdorra * @author Sebastian Sdorra
* @since 1.31 * @since 1.31
@@ -50,84 +49,76 @@ public interface SecuritySystem
{ {
/** /**
* Method description * Store a new permission.
* *
* *
* @param permission * @param permission permission to be stored
* *
* @return * @return stored permission
*/ */
public StoredAssignedPermission addPermission(AssignedPermission permission); public StoredAssignedPermission addPermission(AssignedPermission permission);
/** /**
* Method description * Delete stored permission.
* *
* *
* @param permission * @param permission permission to be deleted
*/ */
public void deletePermission(StoredAssignedPermission permission); public void deletePermission(StoredAssignedPermission permission);
/** /**
* Method description * Delete stored permission.
* *
* *
* @param id * @param id id of the permission
*/ */
public void deletePermission(String id); public void deletePermission(String id);
/** /**
* Method description * Modify stored permission.
* *
* *
* @param id * @param permission stored permisison
* @param permission
*/ */
public void modifyPermission(StoredAssignedPermission permission); public void modifyPermission(StoredAssignedPermission permission);
//~--- get methods ---------------------------------------------------------- //~--- get methods ----------------------------------------------------------
/** /**
* Method description * Return all stored permissions.
* *
* *
* @return * @return stored permission
*/ */
public List<StoredAssignedPermission> getAllPermissions(); public List<StoredAssignedPermission> getAllPermissions();
/** /**
* Method description * Return all available permissions.
* *
* *
* @return * @return available permissions
*/ */
public List<PermissionDescriptor> getAvailablePermissions(); public List<PermissionDescriptor> getAvailablePermissions();
/** /**
* Method description * Return the stored permission which is stored with the given id.
* *
* *
* @param id * @param id id of the stored permission
* *
* @return * @return stored permission
*/ */
public StoredAssignedPermission getPermission(String id); public StoredAssignedPermission getPermission(String id);
/** /**
* Method description * Returns all stored permissions which are matched by the given
* {@link Predicate}.
* *
* *
* @param predicate * @param predicate predicate to filter
* *
* @return * @return filtered permissions
*/ */
public List<StoredAssignedPermission> getPermissions( public List<StoredAssignedPermission> getPermissions(
Predicate<AssignedPermission> predicate); Predicate<AssignedPermission> predicate);
/**
* Method description
*
*
* @return
*/
public PrincipalCollection getSystemAccount();
} }

View File

@@ -38,6 +38,7 @@ import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlRootElement;
/** /**
* Permission object which is stored and assigned to a specific user or group.
* *
* @author Sebastian Sdorra * @author Sebastian Sdorra
* @since 1.31 * @since 1.31
@@ -47,7 +48,7 @@ import javax.xml.bind.annotation.XmlRootElement;
public class StoredAssignedPermission extends AssignedPermission public class StoredAssignedPermission extends AssignedPermission
{ {
/** Field description */ /** serial version uid */
private static final long serialVersionUID = -4593919877023168090L; private static final long serialVersionUID = -4593919877023168090L;
//~--- constructors --------------------------------------------------------- //~--- constructors ---------------------------------------------------------
@@ -59,11 +60,11 @@ public class StoredAssignedPermission extends AssignedPermission
public StoredAssignedPermission() {} public StoredAssignedPermission() {}
/** /**
* Constructs ... * Constructs a new StoredAssignedPermission.
* *
* *
* @param id * @param id id of the permission object
* @param permission * @param permission assigned permission object
*/ */
public StoredAssignedPermission(String id, AssignedPermission permission) public StoredAssignedPermission(String id, AssignedPermission permission)
{ {
@@ -75,10 +76,10 @@ public class StoredAssignedPermission extends AssignedPermission
//~--- get methods ---------------------------------------------------------- //~--- get methods ----------------------------------------------------------
/** /**
* Method description * Returns the id of the stored permission object.
* *
* *
* @return * @return id of permission
*/ */
public String getId() public String getId()
{ {
@@ -87,6 +88,6 @@ public class StoredAssignedPermission extends AssignedPermission
//~--- fields --------------------------------------------------------------- //~--- fields ---------------------------------------------------------------
/** Field description */ /** id */
private String id; private String id;
} }

View File

@@ -42,6 +42,8 @@ import sonia.scm.HandlerEvent;
import java.io.Serializable; import java.io.Serializable;
/** /**
* Event which is fired after a {@link StoredAssignedPermission} was added,
* removed or changed.
* *
* @author Sebastian Sdorra * @author Sebastian Sdorra
* @since 1.31 * @since 1.31
@@ -49,17 +51,17 @@ import java.io.Serializable;
public final class StoredAssignedPermissionEvent implements Serializable public final class StoredAssignedPermissionEvent implements Serializable
{ {
/** Field description */ /** serial version uid */
private static final long serialVersionUID = 706824497813169009L; private static final long serialVersionUID = 706824497813169009L;
//~--- constructors --------------------------------------------------------- //~--- constructors ---------------------------------------------------------
/** /**
* Constructs ... * Constructs a new StoredAssignedPermissionEvent.
* *
* *
* @param type * @param type type of the event
* @param permission * @param permission permission object which has changed
*/ */
public StoredAssignedPermissionEvent(HandlerEvent type, public StoredAssignedPermissionEvent(HandlerEvent type,
StoredAssignedPermission permission) StoredAssignedPermission permission)
@@ -71,12 +73,7 @@ public final class StoredAssignedPermissionEvent implements Serializable
//~--- methods -------------------------------------------------------------- //~--- methods --------------------------------------------------------------
/** /**
* Method description * {@inheritDoc}
*
*
* @param obj
*
* @return
*/ */
@Override @Override
public boolean equals(Object obj) public boolean equals(Object obj)
@@ -99,10 +96,7 @@ public final class StoredAssignedPermissionEvent implements Serializable
} }
/** /**
* Method description * {@inheritDoc}
*
*
* @return
*/ */
@Override @Override
public int hashCode() public int hashCode()
@@ -111,10 +105,7 @@ public final class StoredAssignedPermissionEvent implements Serializable
} }
/** /**
* Method description * {@inheritDoc}
*
*
* @return
*/ */
@Override @Override
public String toString() public String toString()
@@ -130,10 +121,10 @@ public final class StoredAssignedPermissionEvent implements Serializable
//~--- get methods ---------------------------------------------------------- //~--- get methods ----------------------------------------------------------
/** /**
* Method description * Return the type of the event.
* *
* *
* @return * @return type of event
*/ */
public HandlerEvent getEventType() public HandlerEvent getEventType()
{ {
@@ -141,10 +132,10 @@ public final class StoredAssignedPermissionEvent implements Serializable
} }
/** /**
* Method description * Returns the changed permission object.
* *
* *
* @return * @return changed permission
*/ */
public StoredAssignedPermission getPermission() public StoredAssignedPermission getPermission()
{ {
@@ -153,9 +144,9 @@ public final class StoredAssignedPermissionEvent implements Serializable
//~--- fields --------------------------------------------------------------- //~--- fields ---------------------------------------------------------------
/** Field description */ /** changed permission */
private StoredAssignedPermission permission; private StoredAssignedPermission permission;
/** Field description */ /** type of the event */
private HandlerEvent type; private HandlerEvent type;
} }

View File

@@ -41,7 +41,6 @@ import com.google.inject.Inject;
import com.google.inject.Singleton; import com.google.inject.Singleton;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.PrincipalCollection;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -325,20 +324,6 @@ public class DefaultSecuritySystem implements SecuritySystem
return permissions.build(); return permissions.build();
} }
/**
* Method description
*
*
* @return
*/
@Override
public PrincipalCollection getSystemAccount()
{
// TODO
throw new UnsupportedOperationException("Not supported yet.");
}
//~--- methods -------------------------------------------------------------- //~--- methods --------------------------------------------------------------
/** /**