X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cadi%2Fcore%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fcadi%2Futil%2FFixURIinfo.java;h=ff282ba977f038476abdcf3c108c14c7a80963ed;hb=HEAD;hp=7e3a239b5168b5390ed3988ff27445982beb7ba2;hpb=12414fe43077e12d7ef711951b1633ad31d73573;p=aaf%2Fauthz.git diff --git a/cadi/core/src/main/java/org/onap/aaf/cadi/util/FixURIinfo.java b/cadi/core/src/main/java/org/onap/aaf/cadi/util/FixURIinfo.java index 7e3a239b..ff282ba9 100644 --- a/cadi/core/src/main/java/org/onap/aaf/cadi/util/FixURIinfo.java +++ b/cadi/core/src/main/java/org/onap/aaf/cadi/util/FixURIinfo.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. @@ -24,43 +24,52 @@ import java.net.URI; /** * URI and URL, if the host does not have "dots", will interpret Host:port as Authority - * + * * This is very problematic for Containers, which like single name entries. * @author Instrumental(Jonathan) * */ public class FixURIinfo { - private String auth; - private String host; - private int port; - - public FixURIinfo(URI uri) { - auth = uri.getAuthority(); - host = uri.getHost(); - if(host==null) { - if(auth!=null) { - int colon = auth.indexOf(':'); - if(colon >= 0 ) { - host = auth.substring(0, colon); - port = Integer.parseInt(auth.substring(colon+1)); - } else { - host = auth; - port = uri.getPort(); - } - auth=null; - } - } - } - - public String getHost() { - return host; - } - - public int getPort() { - return port; - } + private String auth; + private String host; + private int port; + + public FixURIinfo(URI uri) { + auth = uri.getAuthority(); + host = uri.getHost(); + if(host==null || (auth!=null && auth.startsWith(host))) { + if(auth!=null) { + int colon = auth.indexOf(':'); + if(colon >= 0 ) { + host = auth.substring(0, colon); + port = Integer.parseInt(auth.substring(colon+1)); + } else { + host = auth; + port = uri.getPort(); + if (port < 1) { + if ("http".equals(uri.getScheme())) { + port = 80; + } else if ("https".equals(uri.getScheme())) { + port = 443; + } else { + throw new RuntimeException ("Invalid scheme provided for URI " + uri); + } + } + } + auth=null; + } + } + } + + public String getHost() { + return host; + } + + public int getPort() { + return port; + } - public String getUserInfo() { - return auth; - } + public String getUserInfo() { + return auth; + } }