001: /**
002: * $Id: GatewayDeploymentBean.java,v 1.21 2006/09/05 11:27:20 vp154433 Exp $
003: * Copyright 2005 Sun Microsystems, Inc. All
004: * rights reserved. Use of this product is subject
005: * to license terms. Federal Acquisitions:
006: * Commercial Software -- Government Users
007: * Subject to Standard License Terms and
008: * Conditions.
009: *
010: * Sun, Sun Microsystems, the Sun logo, and Sun ONE
011: * are trademarks or registered trademarks of Sun Microsystems,
012: * Inc. in the United States and other countries.
013: */package com.sun.portal.admin.console.sra.gateway;
014:
015: import java.util.HashMap;
016: import java.util.Map;
017: import java.util.ArrayList;
018: import java.util.Arrays;
019: import java.util.Iterator;
020: import java.util.List;
021: import java.util.NoSuchElementException;
022: import java.util.StringTokenizer;
023:
024: import com.sun.data.provider.DataProvider;
025: import com.sun.data.provider.impl.ObjectArrayDataProvider;
026:
027: import com.sun.portal.admin.console.sra.ISraBean;
028: import com.sun.portal.admin.console.sra.SraBaseBean;
029: import com.sun.portal.admin.console.sra.utils.SraObjectListDataProvider;
030: import com.sun.portal.admin.console.sra.utils.Util;
031: import com.sun.portal.admin.console.sra.accesslist.ACL;
032: import com.sun.web.ui.model.Option;
033:
034: /**
035: * author: Noble Paul
036: * Date: Jun 8, 2005, 1:57:09 PM
037: */
038: public class GatewayDeploymentBean extends SraBaseBean {
039: private static final String BLANK_SPACE = " ";
040: private static final String ENABLE_PROXY = "sunPortalGatewayUseProxy";
041: private static final String PROXY_USELIST = "sunPortalGatewayUseWebProxyURL";
042: private static final String PROXY_NOTUSELIST = "sunPortalGatewayDontUseWebProxyURL";
043: private static final String DOMAINS_SUBDOMAINS = "sunPortalGatewayDomainsAndSubdomains";
044: private static final String PROXY_PASSWDLIST = "sunPortalGatewayProxyPasswdList";
045: private static final String ENABLE_PACFILE = "sunPortalGatewayPACFileEnabled";
046: private static final String PACFILE_LOCATION = "sunPortalGatewayPACFileLocation";
047: private static final String ENABLE_HTTPPROXY = "sunPortalGatewayUseHTTPProxy";
048: private static final String REWRITER_PROXYLIST = "sunPortalGatewayRewriterProxyHost";
049: private static final String ENABLE_NETLETPROXY = "sunPortalGatewayUseNetletProxy";
050: private static final String NETLET_PROXYLIST = "sunPortalGatewayNetletProxyHost";
051: private static final String ENABLE_NETLETPROXYTUNNEL = "sunPortalGatewayNetletProxyTunnel";
052:
053: static final String[] ATTR_LIST = { ENABLE_PROXY, PROXY_USELIST,
054: PROXY_NOTUSELIST, DOMAINS_SUBDOMAINS, PROXY_PASSWDLIST,
055: ENABLE_PACFILE, PACFILE_LOCATION, ENABLE_HTTPPROXY,
056: REWRITER_PROXYLIST, ENABLE_NETLETPROXY, NETLET_PROXYLIST,
057: ENABLE_NETLETPROXYTUNNEL, };
058:
059: private boolean useProxy;
060:
061: private String[] useWebProxyURL;
062:
063: private String[] dontUseWebProxyURL;
064:
065: private String[] domainsAndSubdomains;
066:
067: private String[] proxyPasswdList;
068:
069: private boolean pACFileEnabled;
070:
071: private String pacLocation;
072:
073: private boolean useHTTPProxy;
074:
075: private String[] rewriterProxyHost;
076:
077: private boolean useNetletProxy;
078:
079: private String[] netletProxyHost;
080:
081: private boolean netletProxyTunnel;
082:
083: private List useWebProxyURLList;
084:
085: private List dontUseWebProxyURLList;
086:
087: private List proxyPasswordList;
088:
089: private List domainsAndSubdomainsList;
090:
091: private SraObjectListDataProvider _allowDenyDataProvider;
092:
093: private SraObjectListDataProvider _pplDataProvider;
094:
095: private SraObjectListDataProvider _domainsAndSubdomainsDataProvider;
096:
097: private static List operations;
098:
099: static {
100: operations = new ArrayList();
101: operations.add(new Option(Boolean.TRUE, (String) Util
102: .evaluateValueBinding("#{sra['option.use.string']}")));
103: operations
104: .add(new Option(
105: Boolean.FALSE,
106: (String) Util
107: .evaluateValueBinding("#{sra['option.dontuse.string']}")));
108: }
109:
110: public GatewayDeploymentBean() {
111: super (GATEWAY_SVC, new ProfileBean().getSelectedProfile(),
112: ATTR_LIST);
113: initData();
114: }
115:
116: public void initData() {
117:
118: List useList = getListValue(PROXY_USELIST);
119: List dontUseList = getListValue(PROXY_NOTUSELIST);
120:
121: useWebProxyURLList = getAclList(useList, true);
122: dontUseWebProxyURLList = getAclList(dontUseList, false);
123: List allowDenyList = new ArrayList(useWebProxyURLList);
124: allowDenyList.addAll(dontUseWebProxyURLList);
125: if (allowDenyList.size() == 0)
126: allowDenyList.add(new ACL("", false));
127: _allowDenyDataProvider = new SraObjectListDataProvider(
128: ACL.class.getName() + "_"
129: + GatewayDeploymentBean.class.getName(),
130: allowDenyList);
131: useProxy = getBooleanValue(ENABLE_PROXY);
132: useWebProxyURL = getStringArrayValue(PROXY_USELIST);
133: dontUseWebProxyURL = getStringArrayValue(PROXY_NOTUSELIST);
134: domainsAndSubdomains = getStringArrayValue(DOMAINS_SUBDOMAINS);
135: domainsAndSubdomainsList = getDomainsAndSubdomainsList(domainsAndSubdomains);
136: _domainsAndSubdomainsDataProvider = new SraObjectListDataProvider(
137: TwoParamBean.class.getName() + "_"
138: + GatewayDeploymentBean.class.getName(),
139: domainsAndSubdomainsList);
140: proxyPasswdList = getStringArrayValue(PROXY_PASSWDLIST);
141: proxyPasswordList = getPplList(proxyPasswdList);
142: _pplDataProvider = new SraObjectListDataProvider(
143: ProxyInfoBean.class.getName() + "_"
144: + GatewayDeploymentBean.class.getName(),
145: proxyPasswordList);
146: pACFileEnabled = getBooleanValue(ENABLE_PACFILE);
147: pacLocation = getStringValue(PACFILE_LOCATION);
148: useHTTPProxy = getBooleanValue(ENABLE_HTTPPROXY);
149: rewriterProxyHost = getStringArrayValue(REWRITER_PROXYLIST);
150: useNetletProxy = getBooleanValue(ENABLE_NETLETPROXY);
151: netletProxyHost = getStringArrayValue(NETLET_PROXYLIST);
152: netletProxyTunnel = getBooleanValue(ENABLE_NETLETPROXYTUNNEL);
153: }
154:
155: public java.util.List getOperations() {
156: return operations;
157: }
158:
159: public String[] getDomainsAndSubdomains() {
160: return domainsAndSubdomains;
161: }
162:
163: public void setDomainsAndSubdomains(String[] domainsAndSubdomains) {
164: this .domainsAndSubdomains = domainsAndSubdomains;
165: updateAttributeNVMap(DOMAINS_SUBDOMAINS,
166: this .domainsAndSubdomains);
167: }
168:
169: public String[] getDontUseWebProxyURL() {
170: return dontUseWebProxyURL;
171: }
172:
173: public void setDontUseWebProxyURL(String[] dontUseWebProxyURL) {
174: this .dontUseWebProxyURL = dontUseWebProxyURL;
175: updateAttributeNVMap(PROXY_NOTUSELIST, this .dontUseWebProxyURL);
176: }
177:
178: public String[] getNetletProxyHost() {
179: return netletProxyHost;
180: }
181:
182: public void setNetletProxyHost(String[] netletProxyHost) {
183: this .netletProxyHost = netletProxyHost;
184: updateAttributeNVMap(NETLET_PROXYLIST, this .netletProxyHost);
185: }
186:
187: public boolean getNetletProxyTunnel() {
188: return netletProxyTunnel;
189: }
190:
191: public void setNetletProxyTunnel(boolean netletProxyTunnel) {
192: this .netletProxyTunnel = netletProxyTunnel;
193: updateAttributeNVMap(ENABLE_NETLETPROXYTUNNEL, ""
194: + this .netletProxyTunnel);
195: }
196:
197: public boolean getpACFileEnabled() {
198: return pACFileEnabled;
199: }
200:
201: public void setpACFileEnabled(boolean pACFileEnabled) {
202: this .pACFileEnabled = pACFileEnabled;
203: updateAttributeNVMap(ENABLE_PACFILE, "" + this .pACFileEnabled);
204: }
205:
206: public String getPacLocation() {
207: return pacLocation;
208: }
209:
210: public void setPacLocation(String pacLocation) {
211: this .pacLocation = pacLocation;
212: updateAttributeNVMap(PACFILE_LOCATION, this .pacLocation);
213: }
214:
215: public String[] getProxyPasswdList() {
216: return proxyPasswdList;
217: }
218:
219: public void setProxyPasswdList(String[] proxyPasswdList) {
220: this .proxyPasswdList = proxyPasswdList;
221: updateAttributeNVMap(PROXY_PASSWDLIST, this .proxyPasswdList);
222: }
223:
224: public String[] getRewriterProxyHost() {
225: return rewriterProxyHost;
226: }
227:
228: public void setRewriterProxyHost(String[] rewriterProxyHost) {
229: this .rewriterProxyHost = rewriterProxyHost;
230: updateAttributeNVMap(REWRITER_PROXYLIST, this .rewriterProxyHost);
231: }
232:
233: public boolean getUseHTTPProxy() {
234: return useHTTPProxy;
235: }
236:
237: public void setUseHTTPProxy(boolean useHTTPProxy) {
238: this .useHTTPProxy = useHTTPProxy;
239: updateAttributeNVMap(ENABLE_HTTPPROXY, "" + this .useHTTPProxy);
240: }
241:
242: public boolean getUseNetletProxy() {
243: return useNetletProxy;
244: }
245:
246: public void setUseNetletProxy(boolean useNetletProxy) {
247: this .useNetletProxy = useNetletProxy;
248: updateAttributeNVMap(ENABLE_NETLETPROXY, ""
249: + this .useNetletProxy);
250: }
251:
252: public boolean getUseProxy() {
253: return useProxy;
254: }
255:
256: public void setUseProxy(boolean useProxy) {
257: this .useProxy = useProxy;
258: updateAttributeNVMap(ENABLE_PROXY, "" + this .useProxy);
259: }
260:
261: public boolean getDontUseProxy() {
262: return !useProxy;
263: }
264:
265: public void setDontUseProxy(boolean dontUseProxy) {
266: this .useProxy = !dontUseProxy;
267: updateAttributeNVMap(ENABLE_PROXY, "" + this .useProxy);
268: }
269:
270: public String[] getUseWebProxyURL() {
271: return useWebProxyURL;
272: }
273:
274: public void setUseWebProxyURL(String[] useWebProxyURL) {
275: this .useWebProxyURL = useWebProxyURL;
276: updateAttributeNVMap(PROXY_USELIST, this .useWebProxyURL);
277: }
278:
279: public void storeData() {
280: setAllowDenyList();
281: setProxyPasswordList();
282: setDomainsAndSubdomainsList();
283: super .storeDataToStore();
284: }
285:
286: private void setUseWebProxyURLList(List useWebProxyURLList) {
287: this .useWebProxyURLList = useWebProxyURLList;
288: List useList = convertAclListToUrlList(this .useWebProxyURLList);
289: updateAttributeNVMap(PROXY_USELIST, useList);
290: }
291:
292: private void setDontUseWebProxyURLList(List dontUseWebProxyURLList) {
293: this .dontUseWebProxyURLList = dontUseWebProxyURLList;
294: List dontUseList = convertAclListToUrlList(this .dontUseWebProxyURLList);
295: updateAttributeNVMap(PROXY_NOTUSELIST, dontUseList);
296: }
297:
298: private List getAclList(List thelist, boolean isAllowed) {
299: List list = new ArrayList(thelist.size());
300: Iterator iter = thelist.iterator();
301:
302: while (iter.hasNext()) {
303: String element = (String) iter.next();
304: list.add(new ACL(element, isAllowed));
305: }
306: return list;
307: }
308:
309: public DataProvider getAllowDenyList() {
310: return _allowDenyDataProvider;
311: }
312:
313: private void setAllowDenyList() {
314: _allowDenyDataProvider.commitChanges();
315: List allowList = new ArrayList();
316: List denyList = new ArrayList();
317: ACL[] allowDenyArray = (ACL[]) _allowDenyDataProvider.getList()
318: .toArray(new ACL[0]);
319:
320: for (int i = 0; i < allowDenyArray.length; i++) {
321: ACL element = allowDenyArray[i];
322: if (element.getIsAllowed())
323: allowList.add(element);
324: else
325: denyList.add(element);
326: }
327:
328: setUseWebProxyURLList(allowList);
329: setDontUseWebProxyURLList(denyList);
330: }
331:
332: /**
333: * @param aclObjectlist
334: */
335: private List convertAclListToUrlList(List aclObjectlist) {
336: // Using a list of ACL objects, create a list of String objects of the
337: // URL's contained in the ACL object
338: List list = new ArrayList(aclObjectlist.size());
339: Iterator iter = aclObjectlist.iterator();
340: while (iter.hasNext()) {
341: ACL element = (ACL) iter.next();
342: list.add(element.getUrl());
343: }
344: return list;
345: }
346:
347: public void addNewURL() {
348: if (_allowDenyDataProvider.canAppendRow()) {
349: _allowDenyDataProvider.appendRow(new ACL("", false));
350: _allowDenyDataProvider.commitChanges();
351: }
352: }
353:
354: public void deleteURL() {
355: _allowDenyDataProvider.commitChanges();
356:
357: List aclList = _allowDenyDataProvider.getList();
358: for (int i = 0; i < aclList.size(); i++) {
359: ACL acl = (ACL) aclList.get(i);
360: if (acl.getSelected()) {
361: _allowDenyDataProvider.removeObject(acl);
362: }
363: }
364: _allowDenyDataProvider.commitChanges();
365: setAllowDenyList();
366:
367: storeDataToStore(PROXY_USELIST);
368: storeDataToStore(PROXY_NOTUSELIST);
369: }
370:
371: public void addNewPassword() {
372: if (_pplDataProvider.canAppendRow()) {
373: _pplDataProvider.appendRow(new ProxyInfoBean("", "", ""));
374: _pplDataProvider.commitChanges();
375: }
376: }
377:
378: public void deletePassword() {
379: _pplDataProvider.commitChanges();
380: List pplList = _pplDataProvider.getList();
381: for (int i = 0; i < pplList.size(); i++) {
382: ProxyInfoBean bean = (ProxyInfoBean) pplList.get(i);
383: if (bean.getSelected()) {
384: _pplDataProvider.removeObject(bean);
385: }
386: }
387: _pplDataProvider.commitChanges();
388: setProxyPasswordList();
389:
390: storeDataToStore(PROXY_PASSWDLIST);
391: }
392:
393: public List getPplList(String[] proxyPasswdList) {
394: List pplList = null;
395: if (proxyPasswdList != null) {
396: pplList = new ArrayList(proxyPasswdList.length);
397: if (proxyPasswdList.length != 0) {
398: for (int i = 0; i < proxyPasswdList.length; i++) {
399: String value = proxyPasswdList[i];
400: if (value != null && value.trim().length() != 0) {
401: StringTokenizer st = new StringTokenizer(value);
402: String str1;
403: while (st.hasMoreTokens()) {
404: str1 = st.nextToken();
405: String s1 = "";
406: String s2 = "";
407: String s3 = "";
408: StringTokenizer st1 = new StringTokenizer(
409: str1, "|");
410: if (st1.hasMoreTokens()) {
411: s1 = st1.nextToken();
412: }
413: if (st1.hasMoreTokens()) {
414: s2 = st1.nextToken();
415: }
416: try {
417: if (st1.hasMoreTokens()) {
418: s3 = st1.nextToken();
419: }
420: } catch (NoSuchElementException nsee) {
421: s3 = "";
422: }
423: pplList.add(new ProxyInfoBean(s1, s2, s3));
424:
425: }
426: }
427: }
428: } else
429: pplList.add(new ProxyInfoBean("", "", ""));
430:
431: }
432: return pplList;
433: }
434:
435: public DataProvider getProxyPasswordList() {
436: return _pplDataProvider;
437: }
438:
439: private void setProxyPasswordList() {
440: _pplDataProvider.commitChanges();
441: List pplList = new ArrayList();
442: ProxyInfoBean[] pplArray = (ProxyInfoBean[]) _pplDataProvider
443: .getList().toArray(new ProxyInfoBean[0]);
444:
445: for (int i = 0; i < pplArray.length; i++) {
446: ProxyInfoBean element = pplArray[i];
447: pplList.add(element);
448: }
449:
450: setProxyPasswordList(pplList);
451: }
452:
453: public void setProxyPasswordList(List proxyPasswordList) {
454: this .proxyPasswordList = proxyPasswordList;
455:
456: List list = new ArrayList(proxyPasswordList.size());
457: Iterator iter = proxyPasswordList.iterator();
458: while (iter.hasNext()) {
459: ProxyInfoBean element = (ProxyInfoBean) iter.next();
460: if (element.getProxyserver().trim().equalsIgnoreCase("")
461: || element.getProxyuser().trim().equalsIgnoreCase(
462: ""))
463: continue;
464: list.add(element.getProxyserver() + "|"
465: + element.getProxyuser() + "|"
466: + element.getProxypassword());
467: }
468:
469: updateAttributeNVMap(PROXY_PASSWDLIST, list);
470: }
471:
472: public void addNewDomainsAndSubdomains() {
473: if (_domainsAndSubdomainsDataProvider.canAppendRow()) {
474: _domainsAndSubdomainsDataProvider
475: .appendRow(new TwoParamBean("", ""));
476: _domainsAndSubdomainsDataProvider.commitChanges();
477: }
478: }
479:
480: public void deleteDomainsAndSubdomains() {
481: _domainsAndSubdomainsDataProvider.commitChanges();
482: List beanList = _domainsAndSubdomainsDataProvider.getList();
483: for (int i = 0; i < beanList.size(); i++) {
484: TwoParamBean bean = (TwoParamBean) beanList.get(i);
485: if (bean.getSelected()) {
486: _domainsAndSubdomainsDataProvider.removeObject(bean);
487: }
488:
489: }
490: _domainsAndSubdomainsDataProvider.commitChanges();
491: setDomainsAndSubdomainsList();
492: storeDataToStore(DOMAINS_SUBDOMAINS);
493: }
494:
495: public List getDomainsAndSubdomainsList(String[] tmpList) {
496: List newList = null;
497: if (tmpList != null) {
498: newList = new ArrayList(tmpList.length);
499: if (tmpList.length != 0) {
500: for (int i = 0; i < tmpList.length; i++) {
501: String value = tmpList[i];
502: if (value != null && value.trim().length() != 0) {
503: StringTokenizer st = new StringTokenizer(value);
504: String s1 = "";
505: String s2 = "";
506: if (st.hasMoreTokens()) {
507: s1 = st.nextToken();
508: }
509: if (st.hasMoreTokens()) {
510: s2 = st.nextToken();
511: }
512: newList.add(new TwoParamBean(s1, s2));
513: }
514: }
515: } else
516: newList.add(new TwoParamBean("", ""));
517: }
518: return newList;
519: }
520:
521: public DataProvider getDomainsAndSubdomainsList() {
522: return _domainsAndSubdomainsDataProvider;
523: }
524:
525: private void setDomainsAndSubdomainsList() {
526: _domainsAndSubdomainsDataProvider.commitChanges();
527: setDomainsAndSubdomainsList(new ArrayList(
528: _domainsAndSubdomainsDataProvider.getList()));
529: }
530:
531: public void setDomainsAndSubdomainsList(
532: List domainsAndSubdomainsList) {
533: this .domainsAndSubdomainsList = domainsAndSubdomainsList;
534:
535: List list = new ArrayList(domainsAndSubdomainsList.size());
536: Iterator iter = domainsAndSubdomainsList.iterator();
537: while (iter.hasNext()) {
538: TwoParamBean element = (TwoParamBean) iter.next();
539: if (element.getFirstParam().trim().equalsIgnoreCase("")
540: && element.getSecondParam().trim()
541: .equalsIgnoreCase(""))
542: continue;
543: list.add(element.getFirstParam() + BLANK_SPACE
544: + element.getSecondParam());
545: }
546: updateAttributeNVMap(DOMAINS_SUBDOMAINS, list);
547: }
548:
549: }
|