X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fauth-cass%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fauth%2Fdirect%2FDirectAAFLocator.java;h=f8362553c522132e58f223b65e213756309e2d07;hb=1296352d8eafee57f982a4342ad79ada4aa56d28;hp=1fb050b86afa28de7fb9043b7b0053a6f10040c4;hpb=4b5a7d721d994a49057e9bfb403c7bff1b376660;p=aaf%2Fauthz.git diff --git a/auth/auth-cass/src/main/java/org/onap/aaf/auth/direct/DirectAAFLocator.java b/auth/auth-cass/src/main/java/org/onap/aaf/auth/direct/DirectAAFLocator.java index 1fb050b8..f8362553 100644 --- a/auth/auth-cass/src/main/java/org/onap/aaf/auth/direct/DirectAAFLocator.java +++ b/auth/auth-cass/src/main/java/org/onap/aaf/auth/direct/DirectAAFLocator.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. @@ -23,6 +23,7 @@ package org.onap.aaf.auth.direct; import java.net.URI; import java.net.URISyntaxException; +import java.net.UnknownHostException; import java.util.Collections; import java.util.LinkedList; import java.util.List; @@ -34,8 +35,10 @@ import org.onap.aaf.auth.env.AuthzTrans; import org.onap.aaf.auth.layer.Result; import org.onap.aaf.cadi.LocatorException; import org.onap.aaf.cadi.Access.Level; +import org.onap.aaf.cadi.CadiException; import org.onap.aaf.cadi.aaf.v2_0.AbsAAFLocator; import org.onap.aaf.cadi.config.Config; +import org.onap.aaf.cadi.config.RegistrationPropHolder; import org.onap.aaf.misc.env.util.Split; import locate.v1_0.Endpoint; @@ -47,49 +50,58 @@ public class DirectAAFLocator extends AbsAAFLocator { private final URI uri; /** - * + * * @param env * @param ldao * @param key must be one or more of service, version, other in that order - * @throws LocatorException + * @throws LocatorException */ public DirectAAFLocator(AuthzEnv env, LocateDAO ldao, String name, String version) throws LocatorException { - super(env.access(), name, 1000L /* Don't hit DB more than once a second */); + super(env.access(), name, 1000L /* Don't hit DB more than once a second */); this.env = env; this.ldao = ldao; - if(version!=null) { - try { + if (version!=null) { + try { String[] v = Split.split('.',version); - if(v.length>0) {major = Integer.parseInt(v[0]);} - if(v.length>1) {minor = Integer.parseInt(v[1]);} - if(v.length>2) {patch = Integer.parseInt(v[2]);} - if(v.length>3) {pkg = Integer.parseInt(v[3]);} + if (v.length>0) {major = Integer.parseInt(v[0]);} + if (v.length>1) {minor = Integer.parseInt(v[1]);} + if (v.length>2) {patch = Integer.parseInt(v[2]);} + if (v.length>3) {pkg = Integer.parseInt(v[3]);} } catch (NumberFormatException e) { throw new LocatorException("Invalid Version String: " + version); } } - + try { - uri = new URI(access.getProperty(Config.AAF_LOCATE_URL, "localhost")+"/locate/"+name+':'+version); - } catch (URISyntaxException e) { + String aaf_url; + if(name.indexOf('.')>=0) { + aaf_url = "https://"+Config.AAF_LOCATE_URL_TAG+'/'+name+':'+version; + } else { + aaf_url = "https://"+Config.AAF_LOCATE_URL_TAG+"/%CNS.%NS."+name+':'+version; + } + RegistrationPropHolder rph = new RegistrationPropHolder(access,0); + aaf_url = rph.replacements(getClass().getSimpleName(),aaf_url, null,null); + access.printf(Level.INIT,"Creating DirectAAFLocator to %s",aaf_url); + uri = new URI(aaf_url); + } catch (URISyntaxException | UnknownHostException | CadiException e) { throw new LocatorException(e); } myhostname=null; - myport = 0; + myport = 0; } - - + + @Override public boolean refresh() { AuthzTrans trans = env.newTransNoAvg(); Result> rl = ldao.readByName(trans, name); - if(rl.isOK()) { + if (rl.isOK()) { LinkedList epl = new LinkedList<>(); - for(Data d : rl.value) { -// if(myhostname!=null && d.port==myport && d.hostname.equals(myhostname)) { + for (Data d : rl.value) { +// if (myhostname!=null && d.port==myport && d.hostname.equals(myhostname)) { // continue; // } - if((major<0 || major==d.major) && + if ((major<0 || major==d.major) && (minor<0 || minor<=d.minor) && (patch<0 || patch==d.patch) && (pkg<0 || pkg ==d.pkg)) { @@ -104,10 +116,10 @@ public class DirectAAFLocator extends AbsAAFLocator { endpoint.setLatitude(d.latitude); endpoint.setLongitude(d.longitude); endpoint.setProtocol(d.protocol); - for(String s : d.subprotocol(false)) { + for (String s : d.subprotocol(false)) { endpoint.getSubprotocol().add(s); } - + try { epl.add(new EP(endpoint,latitude,longitude)); } catch (URISyntaxException e) {