Class SecureLinkTool

  • All Implemented Interfaces:
    java.lang.Cloneable

    public class SecureLinkTool
    extends LinkTool
    Tool to be able to use Struts SSL Extensions with Velocity.

    It has the same interface as StrutsLinkTool and can function as a substitute if Struts 1.x and SSL Ext are installed.

    Usage:

     Template example:
     <!-- Use just like a regular StrutsLinkTool -->
     $link.action.nameOfAction
     $link.action.nameOfForward
    
     If the action or forward is marked as secure, or not,
     in your struts-config then the link will be rendered
     with https or http accordingly.
    
     Toolbox configuration:
     <tool>
       <key>link</key>
       <scope>request</scope>
       <class>org.apache.velocity.tools.struts.SecureLinkTool</class>
     </tool>
     

    Since:
    VelocityTools 1.1
    Version:
    $Revision: 487322 $ $Date: 2006-12-14 11:49:10 -0800 (Thu, 14 Dec 2006) $
    Author:
    Marino A. Jonsson
    • Constructor Detail

      • SecureLinkTool

        public SecureLinkTool()
    • Method Detail

      • setAction

        public SecureLinkTool setAction​(java.lang.String action)

        Returns a copy of the link with the given action name converted into a server-relative URI reference. This method does not check if the specified action really is defined. This method will overwrite any previous URI reference settings but will copy the query string.

        Parameters:
        action - an action path as defined in struts-config.xml
        Returns:
        a new instance of StrutsLinkTool
      • setForward

        public SecureLinkTool setForward​(java.lang.String forward)

        Returns a copy of the link with the given global forward name converted into a server-relative URI reference. If the parameter does not map to an existing global forward name, null is returned. This method will overwrite any previous URI reference settings but will copy the query string.

        Parameters:
        forward - a global forward name as defined in struts-config.xml
        Returns:
        a new instance of StrutsLinkTool
      • computeURL

        public java.lang.String computeURL​(javax.servlet.http.HttpServletRequest request,
                                           javax.servlet.ServletContext app,
                                           java.lang.String link)
        Compute a hyperlink URL based on the specified action link. The returned URL will have already been passed to response.encodeURL() for adding a session identifier.
        Parameters:
        request - the current request.
        app - the current ServletContext.
        link - the action that is to be converted to a hyperlink URL
        Returns:
        the computed hyperlink URL
      • getActionConfig

        private static org.apache.struts.config.SecureActionConfig getActionConfig​(javax.servlet.http.HttpServletRequest request,
                                                                                   javax.servlet.ServletContext app,
                                                                                   java.lang.String linkString)
        Finds the configuration definition for the specified action link
        Parameters:
        request - the current request.
        app - the current ServletContext.
        linkString - The action we are searching for, specified as a link. (i.e. may include "..")
        Returns:
        The SecureActionConfig object entry for this action, or null if not found
      • startNewUrlString

        private static java.lang.StringBuffer startNewUrlString​(javax.servlet.http.HttpServletRequest request,
                                                                java.lang.String desiredScheme,
                                                                java.lang.String desiredPort)
        Builds the protocol, server name, and port portion of the new URL
        Parameters:
        request - The current request
        desiredScheme - The scheme (http or https) to be used in the new URL
        desiredPort - The port number to be used in th enew URL
        Returns:
        The new URL as a StringBuffer
      • toEncoded

        public java.lang.String toEncoded​(java.lang.String url,
                                          java.lang.String sessionId)
        Return the specified URL with the specified session identifier suitably encoded.
        Parameters:
        url - URL to be encoded with the session id
        sessionId - Session id to be included in the encoded URL
        Returns:
        the specified URL with the specified session identifier suitably encoded