From 11d10673d7154894c0a5c1ac897e16958ae36ff3 Mon Sep 17 00:00:00 2001 From: "lucio.lelii" Date: Tue, 21 Jul 2015 10:39:27 +0000 Subject: [PATCH] git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/Common/authorization-common-library@117386 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../library/AuthorizationEntry.java | 12 ++-- .../AuthorizationInvocationHandler.java | 3 +- .../authorization/library/BannedService.java | 68 +++++++++++++++--- .../library/provider/Service.java | 70 ------------------- .../library/provider/UserInfo.java | 10 +-- 5 files changed, 71 insertions(+), 92 deletions(-) delete mode 100644 src/main/java/org/gcube/common/authorization/library/provider/Service.java diff --git a/src/main/java/org/gcube/common/authorization/library/AuthorizationEntry.java b/src/main/java/org/gcube/common/authorization/library/AuthorizationEntry.java index 6b9c6f2..434aab2 100644 --- a/src/main/java/org/gcube/common/authorization/library/AuthorizationEntry.java +++ b/src/main/java/org/gcube/common/authorization/library/AuthorizationEntry.java @@ -7,8 +7,6 @@ import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; -import org.gcube.common.authorization.library.provider.Service; - @XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) public class AuthorizationEntry { @@ -16,7 +14,7 @@ public class AuthorizationEntry { private String userName; private List roles; private String scope; - private List bannedServices = new ArrayList(); + private List bannedServices = new ArrayList(); protected AuthorizationEntry(){} @@ -27,7 +25,7 @@ public class AuthorizationEntry { this.scope = scope; } - public AuthorizationEntry(String userName, List roles, String scope, List bannedServices) { + public AuthorizationEntry(String userName, List roles, String scope, List bannedServices) { this(userName, roles, scope); this.bannedServices = bannedServices; } @@ -44,18 +42,18 @@ public class AuthorizationEntry { return scope; } - public List getBannedServices() { + public List getBannedServices() { return bannedServices; } - public void setBannedServices(List bannedServices) { + public void setBannedServices(List bannedServices) { this.bannedServices = bannedServices; } @Override public String toString() { return "AuthorizationEntry [userName=" + userName + ", roles=" + roles - + ", scope=" + scope + "]"; + + ", scope=" + scope + " bannedServices "+ bannedServices+"]"; } diff --git a/src/main/java/org/gcube/common/authorization/library/AuthorizationInvocationHandler.java b/src/main/java/org/gcube/common/authorization/library/AuthorizationInvocationHandler.java index 56bb512..c294760 100644 --- a/src/main/java/org/gcube/common/authorization/library/AuthorizationInvocationHandler.java +++ b/src/main/java/org/gcube/common/authorization/library/AuthorizationInvocationHandler.java @@ -8,7 +8,6 @@ import java.util.List; import org.gcube.common.authorization.library.annotations.IsAllowedFor; import org.gcube.common.authorization.library.annotations.SubjectToQuota; import org.gcube.common.authorization.library.provider.AuthorizationProvider; -import org.gcube.common.authorization.library.provider.Service; import org.gcube.common.authorization.library.provider.UserInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -47,7 +46,7 @@ public class AuthorizationInvocationHandler implements Invocatio private void checkSubjectToQuota(UserInfo info, Method method){ if(method.isAnnotationPresent(SubjectToQuota.class)){ - Service service = new Service(resourceAuthorizationProxy.getServiceClass(), resourceAuthorizationProxy.getServiceName()); + BannedService service = new BannedService(resourceAuthorizationProxy.getServiceClass(), resourceAuthorizationProxy.getServiceName()); log.debug("subjectToQuota annotation present, checking for service {} in bannedServices {}",service, info.getBannedServices()); if (info.getBannedServices().contains(service)){ String message = "blocking method "+method.getName()+" for user "+info.getUserName()+": overquota reached"; diff --git a/src/main/java/org/gcube/common/authorization/library/BannedService.java b/src/main/java/org/gcube/common/authorization/library/BannedService.java index 7634d68..89a8137 100644 --- a/src/main/java/org/gcube/common/authorization/library/BannedService.java +++ b/src/main/java/org/gcube/common/authorization/library/BannedService.java @@ -6,31 +6,81 @@ import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; -import org.gcube.common.authorization.library.provider.Service; - @XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) public class BannedService { - private Service service; + private String serviceClass; + private String serviceName; private Calendar banTime; protected BannedService() { super(); } - public BannedService(Service service, Calendar banTime) { + public BannedService(String serviceClass, String serviceName, Calendar banTime) { super(); - this.service = service; + this.serviceClass = serviceClass; + this.serviceName = serviceName; this.banTime = banTime; } - public Service getService() { - return service; + + public BannedService(String serviceClass, String serviceName) { + super(); + this.serviceClass = serviceClass; + this.serviceName = serviceName; + this.banTime = Calendar.getInstance(); } + + public String getServiceClass() { + return serviceClass; + } + + public String getServiceName() { + return serviceName; + } + public Calendar getCreationTime() { return banTime; } - - + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + + ((serviceClass == null) ? 0 : serviceClass.hashCode()); + result = prime * result + + ((serviceName == null) ? 0 : serviceName.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + BannedService other = (BannedService) obj; + if (serviceClass == null) { + if (other.serviceClass != null) + return false; + } else if (!serviceClass.equals(other.serviceClass)) + return false; + if (serviceName == null) { + if (other.serviceName != null) + return false; + } else if (!serviceName.equals(other.serviceName)) + return false; + return true; + } + + @Override + public String toString() { + return "BannedService [serviceClass=" + serviceClass + ", serviceName=" + + serviceName + ", banTime=" + banTime.getTimeInMillis() + "]"; + } } diff --git a/src/main/java/org/gcube/common/authorization/library/provider/Service.java b/src/main/java/org/gcube/common/authorization/library/provider/Service.java deleted file mode 100644 index f12a3a2..0000000 --- a/src/main/java/org/gcube/common/authorization/library/provider/Service.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.gcube.common.authorization.library.provider; - -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlRootElement; - -@XmlRootElement -@XmlAccessorType(XmlAccessType.FIELD) -public class Service { - - private String serviceClass; - private String serviceName; - - protected Service(){} - - public Service(String serviceClass, String serviceName) { - super(); - this.serviceClass = serviceClass; - this.serviceName = serviceName; - } - - public String getServiceClass() { - return serviceClass; - } - public String getServiceName() { - return serviceName; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result - + ((serviceClass == null) ? 0 : serviceClass.hashCode()); - result = prime * result - + ((serviceName == null) ? 0 : serviceName.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - Service other = (Service) obj; - if (serviceClass == null) { - if (other.serviceClass != null) - return false; - } else if (!serviceClass.equals(other.serviceClass)) - return false; - if (serviceName == null) { - if (other.serviceName != null) - return false; - } else if (!serviceName.equals(other.serviceName)) - return false; - return true; - } - - @Override - public String toString() { - return "Service [serviceClass=" + serviceClass + ", serviceName=" - + serviceName + "]"; - } - - - -} diff --git a/src/main/java/org/gcube/common/authorization/library/provider/UserInfo.java b/src/main/java/org/gcube/common/authorization/library/provider/UserInfo.java index 75f06f7..465b056 100644 --- a/src/main/java/org/gcube/common/authorization/library/provider/UserInfo.java +++ b/src/main/java/org/gcube/common/authorization/library/provider/UserInfo.java @@ -6,6 +6,8 @@ import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; +import org.gcube.common.authorization.library.BannedService; + @XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) @@ -13,11 +15,11 @@ public class UserInfo { private String userName; private List roles; - private List bannedServices; + private List bannedServices; protected UserInfo(){} - public UserInfo(String userName, List roles, List bannedServices) { + public UserInfo(String userName, List roles, List bannedServices) { super(); this.userName = userName; this.roles = roles; @@ -31,11 +33,11 @@ public class UserInfo { return roles; } - public List getBannedServices() { + public List getBannedServices() { return bannedServices; } - public boolean isTokenBannedForService(Service service){ + public boolean isTokenBannedForService(BannedService service){ return (bannedServices.contains(service)); }