1 /*
2 (C) Copyright IBM Corp. 2005, 2009
3
4 THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
5 ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
6 CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT.
7
8 You can obtain a current copy of the Eclipse Public License from
9 http://www.opensource.org/licenses/eclipse-1.0.php
10
11 @author : Roberto Pineiro, IBM, roberto.pineiro@us.ibm.com
12 * @author : Chung-hao Tan, IBM, chungtan@us.ibm.com
13 *
14 *
15 * Change History
16 * Flag Date Prog Description
17 *-------------------------------------------------------------------------------
18 * 1535756 2006-08-07 lupusalex Make code warning free
19 * 1516242 2006-11-27 lupusalex Support of OpenPegasus local authentication
20 * 1565892 2006-11-28 lupusalex Make SBLIM client JSR48 compliant
21 * 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL
22 * 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1)
23 * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2)
24 */
25
26 package org.metricshub.wbem.sblim.cimclient.internal.http;
27
28 /*-
29 * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲
30 * WBEM Java Client
31 * ჻჻჻჻჻჻
32 * Copyright 2023 - 2025 MetricsHub
33 * ჻჻჻჻჻჻
34 * Licensed under the Apache License, Version 2.0 (the "License");
35 * you may not use this file except in compliance with the License.
36 * You may obtain a copy of the License at
37 *
38 * http://www.apache.org/licenses/LICENSE-2.0
39 *
40 * Unless required by applicable law or agreed to in writing, software
41 * distributed under the License is distributed on an "AS IS" BASIS,
42 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
43 * See the License for the specific language governing permissions and
44 * limitations under the License.
45 * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱
46 */
47
48 import java.util.ArrayList;
49 import java.util.Iterator;
50
51 /**
52 * Class AuthorizationHandler manages AdAuthorizationInfo instances
53 *
54 */
55 public class AuthorizationHandler {
56 private ArrayList<AuthorizationInfo> iAuthList = new ArrayList<AuthorizationInfo>();
57
58 /**
59 * Adds an AuthorizationInfo to the handler
60 *
61 * @param pAuthorizationInfo
62 * The AuthorizationInfo to add
63 */
64 public synchronized void addAuthorizationInfo(AuthorizationInfo pAuthorizationInfo) {
65 this.iAuthList.add(pAuthorizationInfo);
66 }
67
68 /**
69 * Returns the corresponding AuthorizationInfo for a given set of parameters
70 *
71 * @param pAuthorizationModule
72 * The authorization module
73 * @param pProxy
74 * Proxy authentication ?
75 * @param pAddr
76 * Host address
77 * @param pPort
78 * Host port
79 * @param pProtocol
80 * Protocol
81 * @param pRealm
82 * Realm
83 * @param pScheme
84 * Scheme
85 * @return The AuthorizationInfo or <code>null</code> if none fits
86 */
87 public synchronized AuthorizationInfo getAuthorizationInfo(
88 String pAuthorizationModule,
89 Boolean pProxy,
90 String pAddr,
91 int pPort,
92 String pProtocol,
93 String pRealm,
94 String pScheme
95 ) {
96 AuthorizationInfo request = AuthorizationInfo.createAuthorizationInfo(
97 pAuthorizationModule,
98 pProxy,
99 pAddr,
100 pPort,
101 pProtocol,
102 pRealm,
103 pScheme
104 );
105
106 Iterator<AuthorizationInfo> iter = this.iAuthList.iterator();
107 while (iter.hasNext()) {
108 AuthorizationInfo authInfo = iter.next();
109
110 if (authInfo.match(request)) return authInfo;
111 }
112 return null;
113 }
114
115 /**
116 * Returns the AuthorizationInfo at a given index
117 *
118 * @param pIndex
119 * The index
120 * @return The AuthorizationInfo
121 */
122 public synchronized AuthorizationInfo getAuthorizationInfo(int pIndex) {
123 return this.iAuthList.get(pIndex);
124 }
125
126 @Override
127 public String toString() {
128 return "AuthorizationHandler=[AuthInfoList=" + this.iAuthList + "]";
129 }
130 }