01: /*
02: * Copyright 2001 Sun Microsystems, Inc. All rights reserved.
03: * PROPRIETARY/CONFIDENTIAL. Use of this product is subject to license terms.
04: */
05: package com.sun.portal.rproxy.rewriter.obscure;
06:
07: import com.sun.portal.rewriter.AbstractTranslatorHook;
08: import com.sun.portal.rewriter.JSFunctionSpec;
09: import com.sun.portal.rewriter.Translator;
10: import com.sun.portal.rewriter.util.crypto.CryptoHelper;
11: import com.sun.portal.rewriter.util.uri.DecoratedURI;
12: import com.sun.portal.rproxy.rewriter.util.SRAPConfigManager;
13: import com.sun.portal.rproxy.rewriter.util.uri.SRAPGatewayURI;
14:
15: public class ObscureTranslatorHook extends AbstractTranslatorHook {
16: private final JSFunctionSpec jsFunctionSpec;
17:
18: public ObscureTranslatorHook(final Translator aRootTranslator,
19: final SRAPGatewayURI aGatewayURI) {
20: super (aRootTranslator);
21: jsFunctionSpec = new ObscureJSFunctionSpec(aGatewayURI);
22: }// constructor
23:
24: public JSFunctionSpec getJSFunctionSpec() {
25: return jsFunctionSpec;
26: }// getJSFunctionSpec()
27:
28: public String hook4Translate(final DecoratedURI aAbsoluteURI,
29: final DecoratedURI aTranslatedURI) {
30: // if there is not path such as http://xyz.com/
31: // or absolute URI is excluded from obfuscation then send as is
32: if (aTranslatedURI.getPathAndQuery().equals("/")
33: || SRAPConfigManager.isNot2ObscureURI(aAbsoluteURI
34: .getFullFileURI())) {
35: return aTranslatedURI.toExternalForm();
36: }
37:
38: return aTranslatedURI.getNetworkURI()
39: + "/"
40: + CryptoHelper.encode(aTranslatedURI.getPathAndQuery()
41: .substring("/".length()))
42: + aTranslatedURI.getReference();
43: }// hook4Translate()
44:
45: }// class ObscureTranslatorHook
|