changed to unmaintained
[aaf/authz.git] / cadi / core / src / main / java / org / onap / aaf / cadi / util / FixURIinfo.java
1 /**
2  * ============LICENSE_START====================================================
3  * org.onap.aaf
4  * ===========================================================================
5  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
6  * ===========================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END====================================================
19  */
20
21 package org.onap.aaf.cadi.util;
22
23 import java.net.URI;
24
25 /**
26  * URI and URL, if the host does not have "dots", will interpret Host:port as Authority
27  *
28  * This is very problematic for Containers, which like single name entries.
29  * @author Instrumental(Jonathan)
30  *
31  */
32 public class FixURIinfo {
33     private String auth;
34     private String host;
35     private int port;
36
37     public FixURIinfo(URI uri) {
38         auth = uri.getAuthority();
39         host = uri.getHost();
40         if(host==null || (auth!=null && auth.startsWith(host))) {
41             if(auth!=null) {
42                 int colon = auth.indexOf(':');
43                 if(colon >= 0 ) {
44                     host = auth.substring(0, colon);
45                     port = Integer.parseInt(auth.substring(colon+1));
46                 } else {
47                     host = auth;
48                     port = uri.getPort();
49                     if (port < 1) {
50                         if ("http".equals(uri.getScheme())) {
51                             port = 80;
52                         } else if ("https".equals(uri.getScheme())) {
53                             port = 443;
54                         } else {
55                             throw new RuntimeException ("Invalid scheme provided for URI " + uri);
56                         }
57                     }
58                 }
59                 auth=null;
60             }
61         }
62     }
63
64     public String getHost() {
65         return host;
66     }
67
68     public int getPort() {
69         return port;
70     }
71
72     public String getUserInfo() {
73         return auth;
74     }
75 }