01: // @(#)Redirect.java 1.6 "@(#)Redirect.java 1.6 99/10/12 Sun Microsystems"
02:
03: package com.sun.portal.netlet.eproxy;
04:
05: import java.util.NoSuchElementException;
06: import java.util.StringTokenizer;
07: import java.util.logging.Level;
08: import java.util.logging.Logger;
09:
10: import com.iplanet.sso.SSOToken;
11: import com.iplanet.sso.SSOTokenManager;
12: import com.sun.portal.log.common.PortalLogger;
13:
14: // import com.sun.acm.*;
15:
16: public class Redirect {
17:
18: private String dstHost;
19:
20: private int dstPort = 0;
21:
22: private String dstPortList;
23:
24: private boolean found = false;
25:
26: private static Logger logger = PortalLogger
27: .getLogger(Redirect.class);
28:
29: public Redirect(int port, SessionRequest sessReq) {
30: try {
31:
32: SSOTokenManager manager = SSOTokenManager.getInstance();
33: SSOToken token = manager.createSSOToken(sessReq
34: .getSessionID());
35: manager.refreshSession(token);
36: String val = token
37: .getProperty(Integer.toString((int) port));
38:
39: if ((val == null) || (val.compareTo("") == 0)) {
40: found = false;
41: return;
42: } else {
43: found = true;
44: }
45:
46: parseRedirect(val);
47: } catch (Exception e) {
48: }
49:
50: }
51:
52: public int getDstPort() {
53: return (dstPort);
54: }
55:
56: public String getDstHost() {
57: return (dstHost);
58: }
59:
60: public boolean doRedirect() {
61: return (found);
62: }
63:
64: private void parseRedirect(String val) {
65: StringTokenizer parser = new StringTokenizer(val, "^");
66: try {
67: while (parser.hasMoreTokens()) {
68: if (dstHost == null) {
69: dstHost = parser.nextToken();
70: }
71: if (dstPort == 0) {
72: dstPortList = parser.nextToken();
73: dstPort = Integer.parseInt(dstPortList);
74: }
75: }
76: } catch (NoSuchElementException e) {
77: // logger.severe("Redirect: error reading target host/port");
78: logger.severe("PSSRNTLT_CSPNEPROX092");
79: } catch (NumberFormatException e) {
80: // logger.severe("Redirect: error parsing target port");
81: logger.severe("PSSRNTLT_CSPNEPROX093");
82: }
83:
84: // logger.info("Redirect: parsed = " + dstHost + " " + dstPortList);
85: Object[] params2 = { dstHost, " ", dstPortList };
86: logger.log(Level.INFO, "PSSRNTLT_CSPNEPROX094", params2);
87: }
88:
89: public String getDstPortList() {
90: return dstPortList;
91: }
92:
93: }
|