changed to unmaintained
[aaf/authz.git] / cadi / aaf / src / main / java / org / onap / aaf / cadi / aaf / v2_0 / AAFConHttp.java
index e60b5d8..84ef788 100644 (file)
@@ -7,9 +7,9 @@ r * ============LICENSE_START===================================================
  * 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;
@@ -54,7 +55,7 @@ public class AAFConHttp extends AAFCon<HttpURLConnection> {
         hman = new HMangr(access,Config.loadLocator(si, access.getProperty(Config.AAF_URL,null)));
     }
 
-    protected SecuritySetter<HttpURLConnection> bestSS(SecurityInfoC<HttpURLConnection> si) throws CadiException {
+    protected SecuritySetter<HttpURLConnection> bestSS(SecurityInfoC<HttpURLConnection> si) {
         return si.defSS;
     }
 
@@ -82,7 +83,7 @@ public class AAFConHttp extends AAFCon<HttpURLConnection> {
         super(access,tag,si);
         hman = new HMangr(access, locator);
     }
-    
+
     private AAFConHttp(AAFCon<HttpURLConnection> aafcon, String url) throws LocatorException {
         super(aafcon);
         si=aafcon.si;
@@ -127,7 +128,7 @@ public class AAFConHttp extends AAFCon<HttpURLConnection> {
     @Override
     protected Rcli<HttpURLConnection> rclient(URI ignoredURI, SecuritySetter<HttpURLConnection> ss) throws CadiException {
         if (hman.loc==null) {
-            throw new CadiException("No Locator set in AAFConHttp"); 
+            throw new CadiException("No Locator set in AAFConHttp");
         }
         try {
             return new HRcli(hman, hman.loc.best() ,ss);
@@ -135,7 +136,35 @@ public class AAFConHttp extends AAFCon<HttpURLConnection> {
             throw new CadiException(e);
         }
     }
-    
+
+    protected Rcli<HttpURLConnection> rclient(List<URI> ignoredURIs, SecuritySetter<HttpURLConnection> 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<HttpURLConnection> rclient(Locator<URI> loc, SecuritySetter<HttpURLConnection> ss) throws CadiException {
         try {
@@ -149,7 +178,7 @@ public class AAFConHttp extends AAFCon<HttpURLConnection> {
     public AbsTransferSS<HttpURLConnection> transferSS(TaggedPrincipal principal) {
         return new HTransferSS(principal, app,si);
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.cadi.aaf.v2_0.AAFCon#basicAuthSS(java.security.Principal)
      */