git://wamblee.org
/
utils
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
JPA mapping updates
[utils]
/
security
/
impl
/
src
/
main
/
java
/
org
/
wamblee
/
security
/
authorization
/
DefaultAuthorizationService.java
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 1e5abb99c0e28cf9cc95b67e7187f0215c98efd6..a142712e395b999198fcd89d08ec065b2c64c221 100644
(file)
--- a/
security/impl/src/main/java/org/wamblee/security/authorization/DefaultAuthorizationService.java
+++ b/
security/impl/src/main/java/org/wamblee/security/authorization/DefaultAuthorizationService.java
@@
-21,13
+21,14
@@
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.CascadeType;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
-import javax.persistence.ManyToMany;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinTable;
import javax.persistence.OneToMany;
import javax.persistence.OrderColumn;
import javax.persistence.Transient;
import javax.persistence.OneToMany;
import javax.persistence.OrderColumn;
import javax.persistence.Transient;
-import org.wamblee.
usermgt.Use
r;
-import org.wamblee.
usermgt.UserAccessor
;
+import org.wamblee.
security.authentication.UserAccesso
r;
+import org.wamblee.
security.authentication.UserAdministration
;
/**
* Default implementation of an authorization service. To determine whether
/**
* Default implementation of an authorization service. To determine whether
@@
-42,12
+43,12
@@
import org.wamblee.usermgt.UserAccessor;
@Entity
@DiscriminatorValue("DEFAULT")
public class DefaultAuthorizationService extends AbstractAuthorizationService {
@Entity
@DiscriminatorValue("DEFAULT")
public class DefaultAuthorizationService extends AbstractAuthorizationService {
-
-
+
/**
* List of ordered authorization rules.
*/
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, targetEntity = AbstractAuthorizationRule.class)
/**
* List of ordered authorization rules.
*/
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, targetEntity = AbstractAuthorizationRule.class)
+ @JoinTable(name = "SEC_AUTH_SVC_RULE", joinColumns = { @JoinColumn(name = "SVC_ID") }, inverseJoinColumns = { @JoinColumn(name = "RULE_ID") })
@OrderColumn(name = "RULE_INDEX")
private List<AuthorizationRule> rules;
@OrderColumn(name = "RULE_INDEX")
private List<AuthorizationRule> rules;
@@
-57,18
+58,25
@@
public class DefaultAuthorizationService extends AbstractAuthorizationService {
@Transient
private UserAccessor userAccessor;
@Transient
private UserAccessor userAccessor;
+ @Transient
+ private UserAdministration userAdmin;
+
/**
* Constructs the service.
*
* @param aAccessor
* User accessor.
/**
* Constructs the service.
*
* @param aAccessor
* User accessor.
+ * @param aUserAdmin
+ * User administration.
* @param aName
* Name of this instance of the service.
*/
* @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<AuthorizationRule>();
userAccessor = aAccessor;
super(aName);
rules = new ArrayList<AuthorizationRule>();
userAccessor = aAccessor;
+ userAdmin = aUserAdmin;
}
/**
}
/**
@@
-77,19
+85,22
@@
public class DefaultAuthorizationService extends AbstractAuthorizationService {
public DefaultAuthorizationService() {
rules = new ArrayList<AuthorizationRule>();
userAccessor = null;
public DefaultAuthorizationService() {
rules = new ArrayList<AuthorizationRule>();
userAccessor = null;
+ userAdmin = null;
}
}
- /**
- * Sets the user accessor.
- *
- * @param aUserAccessor
- * User accessor.
- */
@Override
public void setUserAccessor(UserAccessor aUserAccessor) {
userAccessor = aUserAccessor;
}
@Override
public void setUserAccessor(UserAccessor aUserAccessor) {
userAccessor = aUserAccessor;
}
+ @Override
+ public void setUserAdministration(UserAdministration aUserAdmin) {
+ userAdmin = aUserAdmin;
+ for (AuthorizationRule rule : rules) {
+ rule.setUserAdministration(userAdmin);
+ }
+ }
+
/*
* (non-Javadoc)
*
/*
* (non-Javadoc)
*
@@
-98,7
+109,7
@@
public class DefaultAuthorizationService extends AbstractAuthorizationService {
* .lang.Object, org.wamblee.security.authorization.Operation)
*/
public boolean isAllowed(Object aResource, Operation aOperation) {
* .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)) {
for (AuthorizationRule rule : rules) {
switch (rule.isAllowed(aResource, aOperation, user)) {
@@
-144,6
+155,7
@@
public class DefaultAuthorizationService extends AbstractAuthorizationService {
* .wamblee.security.authorization.AuthorizationRule)
*/
public void appendRule(AuthorizationRule aRule) {
* .wamblee.security.authorization.AuthorizationRule)
*/
public void appendRule(AuthorizationRule aRule) {
+ aRule.setUserAdministration(userAdmin);
rules.add(aRule);
}
rules.add(aRule);
}
@@
-155,6
+167,7
@@
public class DefaultAuthorizationService extends AbstractAuthorizationService {
* (int, org.wamblee.security.authorization.AuthorizationRule)
*/
public void insertRuleAfter(int aIndex, AuthorizationRule aRule) {
* (int, org.wamblee.security.authorization.AuthorizationRule)
*/
public void insertRuleAfter(int aIndex, AuthorizationRule aRule) {
+ aRule.setUserAdministration(userAdmin);
rules.add(aIndex, aRule);
}
rules.add(aIndex, aRule);
}
@@
-185,5
+198,8
@@
public class DefaultAuthorizationService extends AbstractAuthorizationService {
*/
protected void setMappedRules(List<AuthorizationRule> aRules) {
rules = aRules;
*/
protected void setMappedRules(List<AuthorizationRule> aRules) {
rules = aRules;
+ for (AuthorizationRule rule : rules) {
+ rule.setUserAdministration(userAdmin);
+ }
}
}
}
}