X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=security%2Fimpl%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsecurity%2Fauthorization%2FDefaultAuthorizationService.java;h=7686c334d7826c1907a1930a3dc39b5495658a4e;hb=aa0df19349b7edbc4aedb150862c95fc5ce3910b;hp=2acc3cfd3f1ac6c7d67442edcff014b6f7341d48;hpb=43995978f8779ea9fb686e8cb6f98516d8c2f2e5;p=utils diff --git a/security/impl/src/main/java/org/wamblee/security/authorization/DefaultAuthorizationService.java b/security/impl/src/main/java/org/wamblee/security/authorization/DefaultAuthorizationService.java index 2acc3cfd..7686c334 100644 --- a/security/impl/src/main/java/org/wamblee/security/authorization/DefaultAuthorizationService.java +++ b/security/impl/src/main/java/org/wamblee/security/authorization/DefaultAuthorizationService.java @@ -28,6 +28,7 @@ import javax.persistence.Transient; import org.wamblee.security.authentication.User; import org.wamblee.security.authentication.UserAccessor; +import org.wamblee.security.authentication.UserAdministration; /** * Default implementation of an authorization service. To determine whether @@ -42,8 +43,7 @@ import org.wamblee.security.authentication.UserAccessor; @Entity @DiscriminatorValue("DEFAULT") public class DefaultAuthorizationService extends AbstractAuthorizationService { - - + /** * List of ordered authorization rules. */ @@ -57,18 +57,25 @@ public class DefaultAuthorizationService extends AbstractAuthorizationService { @Transient private UserAccessor userAccessor; + @Transient + private UserAdministration userAdmin; + /** * Constructs the service. * * @param aAccessor * User accessor. + * @param aUserAdmin + * User administration. * @param aName * Name of this instance of the service. */ - public DefaultAuthorizationService(UserAccessor aAccessor, String aName) { + public DefaultAuthorizationService(UserAccessor aAccessor, + UserAdministration aUserAdmin, String aName) { super(aName); rules = new ArrayList(); userAccessor = aAccessor; + userAdmin = aUserAdmin; } /** @@ -77,18 +84,24 @@ public class DefaultAuthorizationService extends AbstractAuthorizationService { public DefaultAuthorizationService() { rules = new ArrayList(); userAccessor = null; + userAdmin = null; } - /** - * Sets the user accessor. - * - * @param aUserAccessor - * User accessor. - */ + @Override public void setUserAccessor(UserAccessor aUserAccessor) { userAccessor = aUserAccessor; } + + @Override + public void setUserAdministration(UserAdministration aUserAdmin) { + userAdmin = aUserAdmin; + System.out.println("Setting userAdmin"); + for (AuthorizationRule rule: rules) { + System.out.println("Setting useradmin on " + rule); + rule.setUserAdministration(userAdmin); + } + } /* * (non-Javadoc) @@ -98,7 +111,7 @@ public class DefaultAuthorizationService extends AbstractAuthorizationService { * .lang.Object, org.wamblee.security.authorization.Operation) */ public boolean isAllowed(Object aResource, Operation aOperation) { - User user = userAccessor.getCurrentUser(); + String user = userAccessor.getCurrentUser(); for (AuthorizationRule rule : rules) { switch (rule.isAllowed(aResource, aOperation, user)) { @@ -144,6 +157,7 @@ public class DefaultAuthorizationService extends AbstractAuthorizationService { * .wamblee.security.authorization.AuthorizationRule) */ public void appendRule(AuthorizationRule aRule) { + aRule.setUserAdministration(userAdmin); rules.add(aRule); } @@ -155,6 +169,7 @@ public class DefaultAuthorizationService extends AbstractAuthorizationService { * (int, org.wamblee.security.authorization.AuthorizationRule) */ public void insertRuleAfter(int aIndex, AuthorizationRule aRule) { + aRule.setUserAdministration(userAdmin); rules.add(aIndex, aRule); } @@ -185,5 +200,8 @@ public class DefaultAuthorizationService extends AbstractAuthorizationService { */ protected void setMappedRules(List aRules) { rules = aRules; + for (AuthorizationRule rule: rules) { + rule.setUserAdministration(userAdmin); + } } }