X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-deforg%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Forg%2FDefaultOrg.java;h=107141bc9cd3ce8f584b0ccd05109179ed54df8d;hb=628b7105ce4d9818aac69a082e515f9275fd46fd;hp=e038d93016ed290c7439139c4a82acba594f49aa;hpb=de1238abf9c120a1ed2dd07e3bd46d6878c4d6b3;p=aaf%2Fauthz.git diff --git a/auth/auth-deforg/src/main/java/org/onap/aaf/org/DefaultOrg.java b/auth/auth-deforg/src/main/java/org/onap/aaf/org/DefaultOrg.java index e038d930..107141bc 100644 --- a/auth/auth-deforg/src/main/java/org/onap/aaf/org/DefaultOrg.java +++ b/auth/auth-deforg/src/main/java/org/onap/aaf/org/DefaultOrg.java @@ -37,21 +37,24 @@ import org.onap.aaf.auth.org.Executor; import org.onap.aaf.auth.org.Mailer; import org.onap.aaf.auth.org.Organization; import org.onap.aaf.auth.org.OrganizationException; +import org.onap.aaf.cadi.config.Config; import org.onap.aaf.cadi.util.FQI; import org.onap.aaf.misc.env.Env; public class DefaultOrg implements Organization { private static final String AAF_DATA_DIR = "aaf_data_dir"; - private static final String PROPERTY_IS_REQUIRED = " property is Required"; // Package on Purpose final String domain; final String atDomain; final String realm; + + private final String root_ns; - private final String NAME,mailHost,mailFrom; + private final String NAME; private final Set supportedRealms; + public DefaultOrg(Env env, String realm) throws OrganizationException { this.realm = realm; @@ -59,31 +62,9 @@ public class DefaultOrg implements Organization { supportedRealms.add(realm); domain=FQI.reverseDomain(realm); atDomain = '@'+domain; - String s; NAME=env.getProperty(realm + ".name","Default Organization"); - mailHost = env.getProperty(s=(realm + ".mailHost"), null); - if (mailHost==null) { - throw new OrganizationException(s + PROPERTY_IS_REQUIRED); - } - mailFrom = env.getProperty(s=(realm + ".mailFrom"), null); - if (mailFrom==null) { - throw new OrganizationException(s + PROPERTY_IS_REQUIRED); - } + root_ns = env.getProperty(Config.AAF_ROOT_NS,Config.AAF_ROOT_NS_DEF); - // Note: This code is to avoid including javax.mail into ONAP, because there are security/licence - // exceptions - try { - Class.forName("javax.mail.Session"); // ensure package is loaded - @SuppressWarnings("unchecked") - Class minst = (Class)Class.forName("org.onap.aaf.org.JavaxMailer"); - mailer = minst.newInstance(); - } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e1) { - env.warn().log("JavaxMailer not loaded. Mailing disabled"); - } - - System.getProperties().setProperty("mail.smtp.host",mailHost); - System.getProperties().setProperty("mail.user", mailFrom); - try { String defFile; String temp=env.getProperty(defFile = (getClass().getName()+".file")); @@ -516,6 +497,7 @@ public class DefaultOrg implements Organization { @Override public String validate(AuthzTrans trans, Policy policy, Executor executor, String... vars) throws OrganizationException { + String user; switch(policy) { case OWNS_MECHID: case CREATE_MECHID: @@ -541,6 +523,12 @@ public class DefaultOrg implements Organization { case CREATE_MECHID_BY_PERM_ONLY: return getName() + " only allows sponsors to create MechIDs"; + case MAY_EXTEND_CRED_EXPIRES: + // If parm, use it, otherwise, trans + user = vars.length>1?vars[1]:trans.user(); + return executor.hasPermission(user, root_ns,"password", root_ns , "extend") + ?null:user + " does not have permission to extend passwords at " + getName(); + default: return policy.name() + " is unsupported at " + getName(); } @@ -587,6 +575,7 @@ public class DefaultOrg implements Organization { public int sendEmail(AuthzTrans trans, List toList, List ccList, String subject, String body, Boolean urgent) throws OrganizationException { if (mailer!=null) { + String mailFrom = mailer.mailFrom(); List to = new ArrayList<>(); for (String em : toList) { if (em.indexOf('@')<0) { @@ -615,9 +604,15 @@ public class DefaultOrg implements Organization { } } - return mailer.sendEmail(trans,dryRun,mailFrom,to,cc,subject,body,urgent); + return mailer.sendEmail(trans,dryRun?"DefaultOrg":null,to,cc,subject,body,urgent)?0:1; } else { return 0; } } + + @Override + public boolean mayAutoDelete(AuthzTrans trans, String user) { + // provide a corresponding feed that indicates that an ID has been intentionally removed from identities.dat table. + return false; + } }