X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cadi%2Faaf%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fcadi%2Faaf%2Fv2_0%2FAAFConHttp.java;h=84ef788cab9b97b1345bc43e1cab0f90e56d1a73;hb=HEAD;hp=a06b7aff773ee914a249b1110deb40d0039353fe;hpb=f03f66a46c5ed8adedea46956a2abc4819cfb1bd;p=aaf%2Fauthz.git diff --git a/cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/v2_0/AAFConHttp.java b/cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/v2_0/AAFConHttp.java index a06b7aff..84ef788c 100644 --- a/cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/v2_0/AAFConHttp.java +++ b/cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/v2_0/AAFConHttp.java @@ -1,5 +1,5 @@ /** - * ============LICENSE_START==================================================== +r * ============LICENSE_START==================================================== * org.onap.aaf * =========================================================================== * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved. @@ -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. @@ -24,6 +24,7 @@ package org.onap.aaf.cadi.aaf.v2_0; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URI; +import java.util.List; import org.onap.aaf.cadi.Access; import org.onap.aaf.cadi.CadiException; @@ -47,174 +48,197 @@ import org.onap.aaf.cadi.principal.TaggedPrincipal; import org.onap.aaf.misc.env.APIException; public class AAFConHttp extends AAFCon { - private final HMangr hman; - - public AAFConHttp(Access access) throws CadiException, LocatorException { - super(access,Config.AAF_URL,SecurityInfoC.instance(access, HttpURLConnection.class)); - hman = new HMangr(access,Config.loadLocator(si, access.getProperty(Config.AAF_URL,null))); - } - - protected SecuritySetter bestSS(SecurityInfoC si) throws CadiException { - return si.defSS; - } - - public AAFConHttp(Access access, String tag) throws CadiException, LocatorException { - super(access,tag,SecurityInfoC.instance(access, HttpURLConnection.class)); - bestSS(si); - hman = new HMangr(access,Config.loadLocator(si, access.getProperty(tag,tag/*try the content itself*/))); - } - - public AAFConHttp(Access access, String urlTag, SecurityInfoC si) throws CadiException, LocatorException { - super(access,urlTag,si); - bestSS(si); - hman = new HMangr(access,Config.loadLocator(si, access.getProperty(urlTag,null))); - } - - public AAFConHttp(Access access, Locator locator) throws CadiException, LocatorException { - super(access,Config.AAF_URL,SecurityInfoC.instance(access, HttpURLConnection.class)); - bestSS(si); - hman = new HMangr(access,locator); - } - - public AAFConHttp(Access access, Locator locator, SecurityInfoC si) throws CadiException, LocatorException, APIException { - super(access,Config.AAF_URL,si); - bestSS(si); - hman = new HMangr(access,locator); - } - - public AAFConHttp(Access access, Locator locator, SecurityInfoC si, String tag) throws CadiException, LocatorException, APIException { - super(access,tag,si); - bestSS(si); - hman = new HMangr(access, locator); - } - - private AAFConHttp(AAFCon aafcon, String url) throws LocatorException { - super(aafcon); - si=aafcon.si; - hman = new HMangr(aafcon.access,Config.loadLocator(si, url)); - } - - @Override - public AAFCon clone(String url) throws LocatorException { - return new AAFConHttp(this,url); - } - - /* (non-Javadoc) - * @see org.onap.aaf.cadi.aaf.v2_0.AAFCon#basicAuth(java.lang.String, java.lang.String) - */ - @Override - public SecuritySetter basicAuth(String user, String password) throws CadiException { - if(password.startsWith("enc:")) { - try { - password = access.decrypt(password, true); - } catch (IOException e) { - throw new CadiException("Error decrypting password",e); - } - } - try { - return new HBasicAuthSS(si,user,password); - } catch (IOException e) { - throw new CadiException("Error creating HBasicAuthSS",e); - } - } - - public SecuritySetter x509Alias(String alias) throws CadiException { - try { - return set(new HX509SS(alias,si)); - } catch (Exception e) { - throw new CadiException("Error creating X509SS",e); - } - } - - /* (non-Javadoc) - * @see org.onap.aaf.cadi.aaf.v2_0.AAFCon#rclient(java.net.URI, org.onap.aaf.cadi.SecuritySetter) - */ - @Override - protected Rcli rclient(URI ignoredURI, SecuritySetter ss) throws CadiException { - if(hman.loc==null) { - throw new CadiException("No Locator set in AAFConHttp"); - } - try { - return new HRcli(hman, hman.loc.best() ,ss); - } catch (Exception e) { - throw new CadiException(e); - } - } - - @Override - public Rcli rclient(Locator loc, SecuritySetter ss) throws CadiException { - try { - HMangr newHMan = new HMangr(access, loc); - return new HRcli(newHMan,newHMan.loc.best(),ss); - } catch (Exception e) { - throw new CadiException(e); - } - } - @Override - public AbsTransferSS transferSS(TaggedPrincipal principal) { - return new HTransferSS(principal, app,si); - } - - /* (non-Javadoc) - * @see org.onap.aaf.cadi.aaf.v2_0.AAFCon#basicAuthSS(java.security.Principal) - */ - @Override - public SecuritySetter basicAuthSS(BasicPrincipal principal) throws CadiException { - try { - return new HBasicAuthSS(principal,si); - } catch (IOException e) { - throw new CadiException("Error creating HBasicAuthSS",e); - } - } - - @Override - public SecuritySetter tokenSS(final String client_id, final String accessToken) throws CadiException { - try { - return new HTokenSS(si, client_id, accessToken); - } catch (IOException e) { - throw new CadiException(e); - } - } - - public HMangr hman() { - return hman; - } - - @Override - public RET best(Retryable retryable) throws LocatorException, CadiException, APIException { - return hman.best(si.defSS, retryable); - } - - /* (non-Javadoc) - * @see org.onap.aaf.cadi.aaf.v2_0.AAFCon#bestForUser(org.onap.aaf.cadi.SecuritySetter, org.onap.aaf.cadi.client.Retryable) - */ - @Override - public RET bestForUser(GetSetter getSetter, Retryable retryable) throws LocatorException, CadiException, APIException { - return hman.best(getSetter.get(this), retryable); - } - - /* (non-Javadoc) - * @see org.onap.aaf.cadi.aaf.v2_0.AAFCon#initURI() - */ - @Override - protected URI initURI() { - try { - Item item = hman.loc.best(); - if(item!=null) { - return hman.loc.get(item); - } - } catch (LocatorException e) { - access.log(e, "Error in AAFConHttp obtaining initial URI"); - } - return null; - } - - /* (non-Javadoc) - * @see org.onap.aaf.cadi.aaf.v2_0.AAFCon#setInitURI(java.lang.String) - */ - @Override - protected void setInitURI(String uriString) { - // Using Locator, not URLString, which is mostly for DME2 - } + private final HMangr hman; + + public AAFConHttp(Access access) throws CadiException, LocatorException { + super(access,Config.AAF_URL,SecurityInfoC.instance(access, HttpURLConnection.class)); + hman = new HMangr(access,Config.loadLocator(si, access.getProperty(Config.AAF_URL,null))); + } + + protected SecuritySetter bestSS(SecurityInfoC si) { + return si.defSS; + } + + public AAFConHttp(Access access, String tag) throws CadiException, LocatorException { + super(access,tag,SecurityInfoC.instance(access, HttpURLConnection.class)); + hman = new HMangr(access,Config.loadLocator(si, access.getProperty(tag,tag/*try the content itself*/))); + } + + public AAFConHttp(Access access, String urlTag, SecurityInfoC si) throws CadiException, LocatorException { + super(access,urlTag,si); + hman = new HMangr(access,Config.loadLocator(si, access.getProperty(urlTag,null))); + } + + public AAFConHttp(Access access, Locator locator) throws CadiException, LocatorException { + super(access,Config.AAF_URL,SecurityInfoC.instance(access, HttpURLConnection.class)); + hman = new HMangr(access,locator); + } + + public AAFConHttp(Access access, Locator locator, SecurityInfoC si) throws CadiException, LocatorException, APIException { + super(access,Config.AAF_URL,si); + hman = new HMangr(access,locator); + } + + public AAFConHttp(Access access, Locator locator, SecurityInfoC si, String tag) throws CadiException, LocatorException, APIException { + super(access,tag,si); + hman = new HMangr(access, locator); + } + + private AAFConHttp(AAFCon aafcon, String url) throws LocatorException { + super(aafcon); + si=aafcon.si; + hman = new HMangr(aafcon.access,Config.loadLocator(si, url)); + } + + @Override + public AAFCon clone(String url) throws LocatorException { + return new AAFConHttp(this,url); + } + + /* (non-Javadoc) + * @see org.onap.aaf.cadi.aaf.v2_0.AAFCon#basicAuth(java.lang.String, java.lang.String) + */ + @Override + public SecuritySetter basicAuth(String user, String password) throws CadiException { + if (password.startsWith("enc:")) { + try { + password = access.decrypt(password, true); + } catch (IOException e) { + throw new CadiException("Error decrypting password",e); + } + } + try { + return new HBasicAuthSS(si,user,password); + } catch (IOException e) { + throw new CadiException("Error creating HBasicAuthSS",e); + } + } + + public SecuritySetter x509Alias(String alias) throws CadiException { + try { + return set(new HX509SS(alias,si)); + } catch (Exception e) { + throw new CadiException("Error creating X509SS",e); + } + } + + /* (non-Javadoc) + * @see org.onap.aaf.cadi.aaf.v2_0.AAFCon#rclient(java.net.URI, org.onap.aaf.cadi.SecuritySetter) + */ + @Override + protected Rcli rclient(URI ignoredURI, SecuritySetter ss) throws CadiException { + if (hman.loc==null) { + throw new CadiException("No Locator set in AAFConHttp"); + } + try { + return new HRcli(hman, hman.loc.best() ,ss); + } catch (Exception e) { + throw new CadiException(e); + } + } + + protected Rcli rclient(List ignoredURIs, SecuritySetter ss) throws CadiException { + if (hman.loc==null) { + throw new CadiException("No Locator set in AAFConHttp"); + } + try { + if (ignoredURIs.isEmpty()) { + return new HRcli(hman, hman.loc.best(), ss); + } else { + Item item = hman.loc.first(); + HRcli currentClient = new HRcli(hman, item, ss); + + item = hman.loc.next(item); + + while (item != null) { + if (!ignoredURIs.contains(currentClient.getURI())) { + break; + } else { + currentClient = new HRcli(hman, item, ss); + } + item = hman.loc.next(item); + } + return currentClient; + } + } catch (Exception e) { + throw new CadiException(e); + } + } + + @Override + public Rcli rclient(Locator loc, SecuritySetter ss) throws CadiException { + try { + HMangr newHMan = new HMangr(access, loc); + return new HRcli(newHMan,newHMan.loc.best(),ss); + } catch (Exception e) { + throw new CadiException(e); + } + } + @Override + public AbsTransferSS transferSS(TaggedPrincipal principal) { + return new HTransferSS(principal, app,si); + } + + /* (non-Javadoc) + * @see org.onap.aaf.cadi.aaf.v2_0.AAFCon#basicAuthSS(java.security.Principal) + */ + @Override + public SecuritySetter basicAuthSS(BasicPrincipal principal) throws CadiException { + try { + return new HBasicAuthSS(principal,si); + } catch (IOException e) { + throw new CadiException("Error creating HBasicAuthSS",e); + } + } + + @Override + public SecuritySetter tokenSS(final String client_id, final String accessToken) throws CadiException { + try { + return new HTokenSS(si, client_id, accessToken); + } catch (IOException e) { + throw new CadiException(e); + } + } + + public HMangr hman() { + return hman; + } + + @Override + public RET best(Retryable retryable) throws LocatorException, CadiException, APIException { + return hman.best(si.defSS, retryable); + } + + /* (non-Javadoc) + * @see org.onap.aaf.cadi.aaf.v2_0.AAFCon#bestForUser(org.onap.aaf.cadi.SecuritySetter, org.onap.aaf.cadi.client.Retryable) + */ + @Override + public RET bestForUser(GetSetter getSetter, Retryable retryable) throws LocatorException, CadiException, APIException { + return hman.best(getSetter.get(this), retryable); + } + + /* (non-Javadoc) + * @see org.onap.aaf.cadi.aaf.v2_0.AAFCon#initURI() + */ + @Override + protected URI initURI() { + try { + Item item = hman.loc.best(); + if (item!=null) { + return hman.loc.get(item); + } + } catch (LocatorException e) { + access.log(e, "Error in AAFConHttp obtaining initial URI"); + } + return null; + } + + /* (non-Javadoc) + * @see org.onap.aaf.cadi.aaf.v2_0.AAFCon#setInitURI(java.lang.String) + */ + @Override + protected void setInitURI(String uriString) { + // Using Locator, not URLString, which is mostly for DME2 + } }