org.jasig.portal.channels.webproxy
Class CWebProxy

java.lang.Object
  extended by org.jasig.portal.channels.webproxy.CWebProxy
All Implemented Interfaces:
ICacheable, IChannel, IMimeResponse

Deprecated. All IChannel implementations should be migrated to portlets

@Deprecated
public class CWebProxy
extends Object
implements IChannel, ICacheable, IMimeResponse

A channel which transforms and interacts with dynamic XML or HTML. See docs/website/developers/channel_docs/reference/CwebProxy.html for full documentation.

Static and Runtime Channel Parameters: These parameters can be configured both as ChannelStaticData parameters and as ChannelRuntimeData parameters. These static parameters can be updated by equivalent Runtime parameters. Caching parameters can also be changed temporarily. Cache defaults and IPerson restrictions are loaded first from properties, and overridden by static data if there.

  1. "cw_xml" - a URI for the source XML document. By default, must be an http:// or https:// URI, though this requirement is configurable via ChannelStaticData parameters.
  2. "cw_xslTitle" - a title representing the stylesheet (optional) If no title parameter is specified, a default stylesheet will be chosen according to the media
  3. "cw_cacheDefaultMode" - Default caching mode. May be none (normally don't cache), or all (cache everything).
  4. "cw_cacheDefaultTimeout" - Default timeout in seconds.
  5. "cw_cacheMode" - override default for this request only. Primarily intended as a runtime parameter, but can used statically to override the first instance.
  6. "cw_cacheTimeout" - override default for this request only. Primarily intended as a runtime parameter, but can be used statically to override the first instance.

Static Channel Parameters: These parameters can be configured only as ChannelStaticData parameters. They can no longer (as of uPortal 2.5.1) be changed at runtime. This closes some serious security vulnerabilities wherein the Adversary would manipulate these parameters at runtime to access resources on the local filesystem.

  1. "cw_ssl" - a URI specifying the corresponding .ssl (stylesheet list) file
  2. "cw_xsl" - a URI specifying the stylesheet to use If cw_xsl is supplied, cw_ssl and cw_xslTitle will be ignored.
  3. "cw_passThrough" - indicates how RunTimeData is to be passed through. If cw_passThrough is supplied, and not set to "all" or "application", additional RunTimeData parameters not starting with "cw_" or "upc_" will be passed as request parameters to the XML URI. If cw_passThrough is set to "marked", this will happen only if there is also a RunTimeData parameter of cw_inChannelLink. "application" is intended to keep application-specific links in the channel, while "all" should keep all links in the channel. This distinction is handled entirely in the URL Filters.
  4. "cw_tidy" - output from xmlUri will be passed though Jtidy
  5. "cw_info" - a URI to be called for the info event.
  6. "cw_help" - a URI to be called for the help event.
  7. "cw_edit" - a URI to be called for the edit event.
  8. "cw_person" - IPerson attributes to pass. A comma-separated list of IPerson attributes to pass to the back end application. The static data value will be passed on all requests except some refresh requests.
  9. "cw_personAllow" - Restrict IPerson attribute passing to this list. A comma-separated list of IPerson attributes that may be passed via cw_person. An empty or non-existent value means use the default value from the corresponding property. The special value "*" means all attributes are allowed. The value "!*" means none are allowed. Static data only.
  10. "upc_localConnContext" - LocalConnectionContext implementation class. The name of a class to use when data sent to the backend application needs to be modified or added to suit local needs. Static data only.
  11. "cw_allow_uri_prefixes" - permitted URI prefixes. Optional static data only parameter specifying allowable prefixes for URIs accessed by this channel. This channel will only use URIs with these prefixes for obtaining XML and XSLT for use in rendering. Whitespace delimit allowed prefixes. Effectively defaults to "http:// https://"; do not allow "file:/" lightly.
  12. "cw_block_uri_prefixes" - blocked URI prefixes. Optional static data only parameter further restricting which URIs this channel will use to obtain XML and XSLT. This channel will not use URIs matching prefixes specified in this whitespace- delimited parameter. Effectively defaults to "".
  13. "cw_restrict_xmlUri_inStaticData" - Optional parameter specifying whether the xmlUri should be restricted according to the allow and deny prefix rules above as presented in ChannelStaticData or just as presented in ChannelRuntimeData. "true" means both ChannelStaticData and ChannelRuntimeData will be restricted. Any other value or the parameter not being present means only ChannelRuntimeData will be restricted. It is important to set this value to true when using subscribe-time channel parameter configuration of the xmlUri.
  14. "cw_cacheGlobalMode" - should content be cached globally May be false (normally don't globally cache), or true (cache everything).

Runtime Channel Parameters:

The following parameters are runtime-only.

  1. "cw_reset" - an instruction to return to reset internal variables. The value return resets cw_xml to its last value before changed by button events. The value "reset" returns all variables to the static data values.
  2. "cw_download" - use download worker for this link or form any link or form that contains this parameter will be handled by the download worker, if the pass-through mode is set to rewrite the link or form. This allows downloads from the proxied site to be delivered via the portal, primarily useful if the download requires verification of a session referenced by a proxied cookie

This channel can be used for all XML formats with appropriate stylesheets. All static data parameters as well as additional runtime data parameters passed to this channel via HttpRequest will in turn be passed on to the XSLT stylesheet as stylesheet parameters. They can be read in the stylesheet as follows: <xsl:param name="yourParamName">aDefaultValue</xsl:param>

Version:
$Revision: 21149 $
Author:
Andrew Draskoy, andrew@mun.ca, Sarah Arnott, sarnott@mun.ca

Nested Class Summary
protected  class CWebProxy.ChannelState
          Deprecated. All state variables are stored in this inner class.
 
Field Summary
static String ALLOW_URI_PREFIXES_PARAM
          Deprecated. The name of the optional ChannelStaticData parameter the value of which will be a String containing a whitespace-delimited list of allowable URI prefixes for URIs from which the configured CWebProxy instance will obtain XML and XSLT.
static String BLOCK_URI_PREFIXES_PARAM
          Deprecated. The name of the optional ChannelStaticData parameter the value of which will be a String containing a whitespace-delimited list of explicitly blocked URI prefixes for URIs from which the configured CWebProxy instance will not obtain XML and XSLT.
protected  CWebProxy.ChannelState chanState
          Deprecated.  
static String RESTRICT_STATIC_XMLURI_PREFIXES_PARAM
          Deprecated. The name of the optional ChannelStaticData parameter the value of which will be the String "true" to convey that the xmlUri should be restricted as received from both ChannelStaticData and CHannelRuntimeData and any other value to convey that it should be restricted only as received from ChannelRuntimeData.
 
Fields inherited from interface org.jasig.portal.ICacheable
CHANNEL_CACHE_KEY_INSTANCE_SCOPE, CHANNEL_CACHE_KEY_SCOPE_PARAM_NAME, CHANNEL_CACHE_KEY_SYSTEM_SCOPE
 
Constructor Summary
CWebProxy()
          Deprecated.  
 
Method Summary
 void addPersonAttributeParameters(CWebProxy.ChannelState state, StringBuffer newXML, String appendchar)
          Deprecated. Add person attribute parameters to the parameters string buffer.
protected static String appendReqParams(String xmlUri, String reqParameters)
          Deprecated.  
 void downloadData(OutputStream out)
          Deprecated. Pass the OutputStream object to the download code if it needs special handling (like outputting a Zip file).
 ChannelCacheKey generateKey()
          Deprecated. Requests the channel to generate a key uniquely describing its current state, and a description of key usage.
 String getContentType()
          Deprecated. Returns the MIME type of the content.
 Map getHeaders()
          Deprecated. Returns a list of header values that can be set in the HttpResponse.
 InputStream getInputStream()
          Deprecated. Returns the MIME content in the form of an input stream.
 String getName()
          Deprecated. Returns the name of the MIME file.
 ChannelRuntimeProperties getRuntimeProperties()
          Deprecated. Acquires ChannelRuntimeProperites from the channel.
 boolean isCacheValid(Object validity)
          Deprecated. Requests the channel to verify validity of the retrieved cache based on the validator object.
 void receiveEvent(PortalEvent ev)
          Deprecated. Process portal events.
 void renderXML(ContentHandler out)
          Deprecated. Ask channel to render its content.
 void reportDownloadError(Exception e)
          Deprecated. Let the channel know that there were problems with the download
 void setRuntimeData(ChannelRuntimeData rd)
          Deprecated. Passes ChannelRuntimeData to the channel.
 void setStaticData(ChannelStaticData sd)
          Deprecated. Passes ChannelStaticData to the channel.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ALLOW_URI_PREFIXES_PARAM

public static final String ALLOW_URI_PREFIXES_PARAM
Deprecated. 
The name of the optional ChannelStaticData parameter the value of which will be a String containing a whitespace-delimited list of allowable URI prefixes for URIs from which the configured CWebProxy instance will obtain XML and XSLT. Defaults to allowing all URIs of the http:// and https:// methods.

See Also:
Constant Field Values

BLOCK_URI_PREFIXES_PARAM

public static final String BLOCK_URI_PREFIXES_PARAM
Deprecated. 
The name of the optional ChannelStaticData parameter the value of which will be a String containing a whitespace-delimited list of explicitly blocked URI prefixes for URIs from which the configured CWebProxy instance will not obtain XML and XSLT. URIs matching these prefixes will not be used even if they also match an allow prefix specified in ALLOW_URI_PREFIXES_PARAM.

See Also:
Constant Field Values

RESTRICT_STATIC_XMLURI_PREFIXES_PARAM

public static final String RESTRICT_STATIC_XMLURI_PREFIXES_PARAM
Deprecated. 
The name of the optional ChannelStaticData parameter the value of which will be the String "true" to convey that the xmlUri should be restricted as received from both ChannelStaticData and CHannelRuntimeData and any other value to convey that it should be restricted only as received from ChannelRuntimeData. CWebProxy should be configured to restrict xmlUri from ChannelStaticData in the case where the xmlUri is a subscribe-time configurable parameter.

See Also:
Constant Field Values

chanState

protected CWebProxy.ChannelState chanState
Deprecated. 
Constructor Detail

CWebProxy

public CWebProxy()
Deprecated. 
Method Detail

setStaticData

public void setStaticData(ChannelStaticData sd)
                   throws PortalException
Deprecated. 
Passes ChannelStaticData to the channel. This is done during channel instantiation time. see org.jasig.portal.ChannelStaticData

Specified by:
setStaticData in interface IChannel
Parameters:
sd - channel static data
Throws:
PortalException
See Also:
ChannelStaticData

appendReqParams

protected static final String appendReqParams(String xmlUri,
                                              String reqParameters)
Deprecated. 

setRuntimeData

public void setRuntimeData(ChannelRuntimeData rd)
Deprecated. 
Passes ChannelRuntimeData to the channel. This function is called prior to the renderXML() call.

Specified by:
setRuntimeData in interface IChannel
Parameters:
rd - channel runtime data
See Also:
ChannelRuntimeData

addPersonAttributeParameters

public void addPersonAttributeParameters(CWebProxy.ChannelState state,
                                         StringBuffer newXML,
                                         String appendchar)
Deprecated. 
Add person attribute parameters to the parameters string buffer.

Parameters:
state - channel state
newXML - StringBuffer of parameters to add to
appendchar - current character to use to append the parameter

receiveEvent

public void receiveEvent(PortalEvent ev)
Deprecated. 
Process portal events. Currently supported events are EDIT_BUTTON_EVENT, HELP_BUTTON_EVENT, ABOUT_BUTTON_EVENT, and SESSION_DONE. The button events work by changing the xmlUri. The new Uri's content should contain a link that will refer back to the old one at the end of its task.

Specified by:
receiveEvent in interface IChannel
Parameters:
ev - the event
See Also:
PortalEvent

getRuntimeProperties

public ChannelRuntimeProperties getRuntimeProperties()
Deprecated. 
Acquires ChannelRuntimeProperites from the channel. This function may be called by the portal framework throughout the session.

Specified by:
getRuntimeProperties in interface IChannel
See Also:
ChannelRuntimeProperties

renderXML

public void renderXML(ContentHandler out)
               throws PortalException
Deprecated. 
Ask channel to render its content.

Specified by:
renderXML in interface IChannel
Parameters:
out - the SAX ContentHandler to output content to
Throws:
PortalException

generateKey

public ChannelCacheKey generateKey()
Deprecated. 
Description copied from interface: ICacheable
Requests the channel to generate a key uniquely describing its current state, and a description of key usage.

Specified by:
generateKey in interface ICacheable

isCacheValid

public boolean isCacheValid(Object validity)
Deprecated. 
Description copied from interface: ICacheable
Requests the channel to verify validity of the retrieved cache based on the validator object.

Specified by:
isCacheValid in interface ICacheable

getContentType

public String getContentType()
Deprecated. 
Description copied from interface: IMimeResponse
Returns the MIME type of the content.

Specified by:
getContentType in interface IMimeResponse

getInputStream

public InputStream getInputStream()
                           throws IOException
Deprecated. 
Description copied from interface: IMimeResponse
Returns the MIME content in the form of an input stream. Returns null if the code needs the OutputStream object

Specified by:
getInputStream in interface IMimeResponse
Throws:
IOException

downloadData

public void downloadData(OutputStream out)
                  throws IOException
Deprecated. 
Description copied from interface: IMimeResponse
Pass the OutputStream object to the download code if it needs special handling (like outputting a Zip file).

Specified by:
downloadData in interface IMimeResponse
Throws:
IOException

getName

public String getName()
Deprecated. 
Description copied from interface: IMimeResponse
Returns the name of the MIME file.

Specified by:
getName in interface IMimeResponse

getHeaders

public Map getHeaders()
Deprecated. 
Description copied from interface: IMimeResponse
Returns a list of header values that can be set in the HttpResponse. Returns null if no headers need to be set.

Specified by:
getHeaders in interface IMimeResponse

reportDownloadError

public void reportDownloadError(Exception e)
Deprecated. 
Description copied from interface: IMimeResponse
Let the channel know that there were problems with the download

Specified by:
reportDownloadError in interface IMimeResponse


Copyright © 2010 Jasig. All Rights Reserved.