X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=security%2Fimpl%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsecurity%2Fauthorization%2FUrlAuthorizationRule.java;h=c68457559a42892ca2e3aa8739ee34ea88e41b73;hb=981d2819a828dad943b0bd4f6df818cfae4ab0df;hp=17bdc348ae8263b97c7ca000d6da2b0414ebe476;hpb=1c45b3b54bf7a45bf311b1b65176e2836f00001b;p=utils diff --git a/security/impl/src/main/java/org/wamblee/security/authorization/UrlAuthorizationRule.java b/security/impl/src/main/java/org/wamblee/security/authorization/UrlAuthorizationRule.java index 17bdc348..c6845755 100644 --- a/security/impl/src/main/java/org/wamblee/security/authorization/UrlAuthorizationRule.java +++ b/security/impl/src/main/java/org/wamblee/security/authorization/UrlAuthorizationRule.java @@ -17,19 +17,17 @@ package org.wamblee.security.authorization; import static org.wamblee.security.authorization.AuthorizationResult.*; -import javax.enterprise.inject.Typed; import javax.persistence.Access; import javax.persistence.AccessType; import javax.persistence.CascadeType; import javax.persistence.Column; -import javax.persistence.DiscriminatorValue; import javax.persistence.Entity; import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; +import javax.persistence.OneToOne; import javax.persistence.Transient; import org.apache.log4j.Logger; -import org.wamblee.usermgt.User; +import org.wamblee.security.authentication.UserAdministration; /** * Utility base class for implementation of authentication rules based on the @@ -155,14 +153,14 @@ public abstract class UrlAuthorizationRule extends AbstractAuthorizationRule { * .Object, org.wamblee.security.authorization.Operation) */ public AuthorizationResult isAllowed(Object aResource, - Operation aOperation, User aUser) { + Operation aOperation, String aUser) { if (!resourceClass.isInstance(aResource)) { return UNSUPPORTED_RESOURCE; } String path = getResourcePath(aResource); - return isAllowed(path, aOperation, aUser); + return isAllowedWithPath(path, aOperation, aUser); } /** @@ -177,8 +175,8 @@ public abstract class UrlAuthorizationRule extends AbstractAuthorizationRule { * * @return Authorization result, */ - protected AuthorizationResult isAllowed(String aPath, Operation aOperation, - User aUser) { + protected AuthorizationResult isAllowedWithPath(String aPath, Operation aOperation, + String aUser) { if (!pathCondition.matches(aPath)) { return UNDECIDED; } @@ -264,7 +262,7 @@ public abstract class UrlAuthorizationRule extends AbstractAuthorizationRule { * * @return Returns the operationCondition. */ - @ManyToOne(cascade = CascadeType.ALL, targetEntity = AbstractOperationCondition.class) + @OneToOne(cascade = CascadeType.ALL, targetEntity = AbstractOperationCondition.class, orphanRemoval = true) @JoinColumn(name = "OPER_COND_PK") public OperationCondition getOperationCondition() { return operationCondition; @@ -283,7 +281,7 @@ public abstract class UrlAuthorizationRule extends AbstractAuthorizationRule { * * @return Returns the pathCondition. */ - @ManyToOne(cascade = CascadeType.ALL, targetEntity = AbstractPathCondition.class) + @OneToOne(cascade = CascadeType.ALL, targetEntity = AbstractPathCondition.class, orphanRemoval = true) @JoinColumn(name = "PATH_COND_PK") public PathCondition getPathCondition() { return pathCondition; @@ -302,7 +300,7 @@ public abstract class UrlAuthorizationRule extends AbstractAuthorizationRule { * * @return Returns the userCondition. */ - @ManyToOne(cascade = CascadeType.ALL, targetEntity = AbstractUserCondition.class) + @OneToOne(cascade = CascadeType.ALL, targetEntity = AbstractUserCondition.class, orphanRemoval = true) @JoinColumn(name = "USER_COND_PK") public UserCondition getUserCondition() { return userCondition; @@ -316,4 +314,10 @@ public abstract class UrlAuthorizationRule extends AbstractAuthorizationRule { protected void setUserCondition(UserCondition aUserCondition) { userCondition = aUserCondition; } + + @Override + public void setUserAdministration(UserAdministration aAdmin) { + userCondition.setUserAdmin(aAdmin); + } + }