X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-deforg%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Forg%2FDefaultOrgIdentity.java;h=f1576c4fe6692c7c5ee2f0d56c2aab5c9493375c;hb=1296352d8eafee57f982a4342ad79ada4aa56d28;hp=7aa57fd700bc236ec7f5d4e0a7ef4f0d04819413;hpb=13df7fff629c4fae42de9c619f3bd5aeeeddf04a;p=aaf%2Fauthz.git diff --git a/auth/auth-deforg/src/main/java/org/onap/aaf/org/DefaultOrgIdentity.java b/auth/auth-deforg/src/main/java/org/onap/aaf/org/DefaultOrgIdentity.java index 7aa57fd7..f1576c4f 100644 --- a/auth/auth-deforg/src/main/java/org/onap/aaf/org/DefaultOrgIdentity.java +++ b/auth/auth-deforg/src/main/java/org/onap/aaf/org/DefaultOrgIdentity.java @@ -7,9 +7,9 @@ * * Licensed under the Apache License, Version 2.0 (the "License"); * * you may not use this file except in compliance with the License. * * You may obtain a copy of the License at - * * + * * * * http://www.apache.org/licenses/LICENSE-2.0 - * * + * * * * Unless required by applicable law or agreed to in writing, software * * distributed under the License is distributed on an "AS IS" BASIS, * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -33,147 +33,147 @@ import org.onap.aaf.cadi.config.Config; import org.onap.aaf.org.Identities.Data; /** - * Org Users are essential representations of Identities within the Org. Since this is a highly individual + * Org Users are essential representations of Identities within the Org. Since this is a highly individual * thing for most Orgs, i.e. some use LDAP, some need feed, some use something else, this object will allow * the Organization to connect to their own Identity systems... - * + * * */ public class DefaultOrgIdentity implements Identity { - private static final String CONTRACTOR = "c"; - private static final String EMPLOYEE = "e"; - private static final String APPLICATION = "a"; - private static final String NON_ACTIVE = "n"; - - private final static int TIMEOUT = Integer.parseInt(Config.AAF_CONN_TIMEOUT_DEF); - - private DefaultOrg org; - //package on purpose - Data identity; - private AuthzTrans trans; - - public DefaultOrgIdentity(AuthzTrans trans, String key, DefaultOrg dorg) throws OrganizationException { - this.trans = trans; - org = dorg; - identity=null; - try { - org.identities.open(trans, TIMEOUT); - try { - Reuse r = org.identities.reuse(); - int at = key.indexOf(dorg.getDomain()); - String search; - if(at>=0) { - search = key.substring(0,at); - } else { - search = key; - } - identity = org.identities.find(search, r); - - - - if(identity==null) { - identity = Identities.NO_DATA; - } - } finally { - org.identities.close(trans); - } - } catch (IOException e) { - throw new OrganizationException(e); - } - } - - @Override - public boolean equals(Object b) { - if(b instanceof DefaultOrgIdentity) { - return identity.id.equals(((DefaultOrgIdentity)b).identity.id); - } - return false; - } - - - @Override - public int hashCode() { - return identity.hashCode(); - } - - @Override - public String id() { - return identity.id; - } - - @Override - public String fullID() { - return identity.id+'@'+org.getDomain(); - } - - @Override - public String type() { - switch(identity.status) { - case EMPLOYEE: return DefaultOrg.Types.Employee.name(); - case CONTRACTOR: return DefaultOrg.Types.Contractor.name(); - case APPLICATION: return DefaultOrg.Types.Application.name(); - case NON_ACTIVE: return DefaultOrg.Types.NotActive.name(); - default: - return "Unknown"; - } - } - - @Override - public Identity responsibleTo() throws OrganizationException { - if("".equals(identity.responsibleTo) && isFound()) { // cover the situation of Top Dog... reports to no-one. - return this; - } else { - return org.getIdentity(trans, identity.responsibleTo); - } - } - - @Override - public List delegate() { - //NOTE: implement Delegate system, if desired - return DefaultOrg.NULL_DELEGATES; - } - - @Override - public String email() { - return identity.email; - } - - @Override - public String fullName() { - return identity.name; - } - - @Override - public String firstName() { - return identity.fname; - } - - @Override - public String mayOwn() { - // Assume only Employees are responsible for Resources. - if(identity.status==null|| identity.status.length()==0) { - return "Identity must have valid status"; - } else if(EMPLOYEE.equals(identity.status)) { - return null; // This is "Yes, is Responsible" - } else { - return "Reponsible Party must be an Employee"; - } - } - - @Override - public boolean isFound() { - return identity!=Identities.NO_DATA; // yes, object comparison intended - } - - @Override - public boolean isPerson() { - return !identity.status.equals(APPLICATION); - } - - @Override - public Organization org() { - return org; - } + private static final String CONTRACTOR = "c"; + private static final String EMPLOYEE = "e"; + private static final String APPLICATION = "a"; + private static final String NON_ACTIVE = "n"; + + final static int TIMEOUT = Integer.parseInt(Config.AAF_CONN_TIMEOUT_DEF); + + private DefaultOrg org; + //package on purpose + Data identity; + private AuthzTrans trans; + + public DefaultOrgIdentity(AuthzTrans trans, String key, DefaultOrg dorg) throws OrganizationException { + this.trans = trans; + org = dorg; + identity=null; + try { + org.identities.open(trans, TIMEOUT); + try { + Reuse r = org.identities.reuse(); + int at = key.indexOf(dorg.getDomain()); + String search; + if (at>=0) { + search = key.substring(0,at); + } else { + search = key; + } + identity = org.identities.find(search, r); + + + + if (identity==null) { + identity = Identities.NO_DATA; + } + } finally { + org.identities.close(trans); + } + } catch (IOException e) { + throw new OrganizationException(e); + } + } + + @Override + public boolean equals(Object b) { + if (b instanceof DefaultOrgIdentity) { + return identity.id.equals(((DefaultOrgIdentity)b).identity.id); + } + return false; + } + + + @Override + public int hashCode() { + return identity.hashCode(); + } + + @Override + public String id() { + return identity.id; + } + + @Override + public String fullID() { + return identity.id+'@'+org.getDomain(); + } + + @Override + public String type() { + switch(identity.status) { + case EMPLOYEE: return DefaultOrg.Types.Employee.name(); + case CONTRACTOR: return DefaultOrg.Types.Contractor.name(); + case APPLICATION: return DefaultOrg.Types.Application.name(); + case NON_ACTIVE: return DefaultOrg.Types.NotActive.name(); + default: + return "Unknown"; + } + } + + @Override + public Identity responsibleTo() throws OrganizationException { + if ("".equals(identity.responsibleTo) && isFound()) { // cover the situation of Top Dog... reports to no-one. + return this; + } else { + return org.getIdentity(trans, identity.responsibleTo); + } + } + + @Override + public List delegate() { + //NOTE: implement Delegate system, if desired + return DefaultOrg.NULL_DELEGATES; + } + + @Override + public String email() { + return identity.email; + } + + @Override + public String fullName() { + return identity.name; + } + + @Override + public String firstName() { + return identity.fname; + } + + @Override + public String mayOwn() { + // Assume only Employees are responsible for Resources. + if (identity.status==null|| identity.status.length()==0) { + return "Identity must have valid status"; + } else if (EMPLOYEE.equals(identity.status)) { + return null; // This is "Yes, is Responsible" + } else { + return "Reponsible Party must be an Employee"; + } + } + + @Override + public boolean isFound() { + return identity!=Identities.NO_DATA; // yes, object comparison intended + } + + @Override + public boolean isPerson() { + return !identity.status.equals(APPLICATION); + } + + @Override + public Organization org() { + return org; + } }