Rewriting of client-side executed scripts in the operation of an SSL VPN
AssigneeJuniper Networks, Inc.
InventorYuhua Wu
Life of this patent
Estimating the term…
Abstract
A network device implements an SSL VPN gateway for client devices. The network device may receive a script destined for a client device. The script may include at least one later binding uniform resource locator (URL)-based link entity. The network device may rewrite the script to include additional script associated with the later binding URL-based link entity. The additional script is configured to execute at the client device to rewrite the later binding URL-based link entity with substitute links that refer to the network device. In this manner, the network device allows the external client devices to access back-end servers in a proprietary network without requiring the installation of custom software on the client devices.
Claims20
A network device comprising:
- a memory to store instructions;
- and
- a processor to execute the instructions to:
- establish a session between the network device and a client device,
- at least one file being transmitted between the network device and the client device;
- examine an eXtensible Stylesheet Language Transformations (XSLT) script being transmitted to the client device through the network device,
- the XSLT script including a tag representing a later-binding uniform resource locator (URL)-based link entity;
- rewrite the XSLT script by inserting guarding code,
- the guarding code including:
- first guarding code that executes at the client device to rewrite the later-binding URL-based link entity to refer to the network device and is inserted before the later-binding URL-based link entity, and
- second guarding code that executes at the client device to rewrite the later-binding URL-based link entity to refer to the network device and is inserted after the later-binding URL-based link entity;
- determine information regarding an XSLT template, the XSLT template defining additional functionality implemented by the guarding code;
- analyze the at least one file to identify whether a particular functionality is implemented by the XSLT template;
- selectively include information regarding the XSLT template, implementing the particular functionality, in the XSLT script, based on whether the guarding code implements the particular functionality,
- the information regarding the XSLT template being included when the guarding code does not implement the particular functionality, and
- the information regarding the XSLT template not being included when the guarding code implements the particular functionality;
- and
- send the rewritten XSLT script, with the selectively included information regarding the XSLT template, to the client device.
A method comprising:
- establishing, by a processor, a session between a network device and a client device,
- at least one file being transmitted between the network device and the client device;
- identifying, by the processor, an eXtensible Stylesheet Language Transformations (XSLT) script being transmitted to the client device through the network device,
- the XSLT script including a tag representing a later-binding uniform resource locator (URL)-based link entity;
- rewriting, by the processor, the XSLT script by inserting guarding code,
- the guarding code including:
- first guarding code that executes at the client device to rewrite the later-binding URL-based link entity to refer to the network device and is inserted before the later-binding URL-based link entity, and
- second guarding code that executes at the client device to rewrite the later-binding URL-based link entity to refer to the network device and is inserted after the later-binding URL-based link entity;
- determining, by the processor, information regarding an XSLT template, the XSLT template defining additional functionality implemented by the guarding code;
- analyzing, by the processor, the at least one file to identify whether a particular functionality is implemented by the XSLT template;
- selectively including, by the processor, information regarding the XSLT template, implementing the particular functionality, in the XSLT script, based on whether the guarding code implements the particular functionality,
- the information regarding the XSLT template being included when the guarding code does not implement the particular functionality, and
- the information regarding the XSLT template not being included when the guarding code implements the particular functionality;
- and
- sending, by the processor, the rewritten XSLT script, with the selectively included information regarding the XSLT template, to the client device.
A non-transitory computer-readable medium storing instructions, the instructions comprising:
- one or more instructions which, when executed by a processor, cause the processor to:
- establish a session between a network device and a client device,
- at least one file being transmitted between the network device and the client device;
- identify an eXtensible Stylesheet Language Transformations (XSLT) script being transmitted to the client device through the network device,
- the XSLT script including a tag representing a later-binding uniform resource locator (URL)-based link entity;
- rewrite the XSLT script by inserting guarding code,
- the guarding code including:
- first guarding code that executes at the client device to rewrite the later-binding URL-based link entity to refer to the network device and is inserted before the later-binding URL-based link entity, and
- second guarding code that executes at the client device to rewrite the later-binding URL-based link entity to refer to the network device and is inserted after the later-binding URL-based link entity;
- determine information regarding an XSLT template, the XSLT template defining additional functionality implemented by the guarding code;
- analyze the at least one file to identify whether a particular functionality is implemented by the XSLT template;
- selectively include information regarding the XSLT template, implementing the particular functionality, in the XSLT script, based on whether the guarding code implements the particular functionality,
- the information regarding the XSLT template being included when the guarding code does not implement the particular functionality, and
- the information regarding the XSLT template not being included when the guarding code implements the particular functionality;
- and
- send the rewritten XSLT script, with the selectively included information regarding the XSLT template, to the client device.
Dependencies are inferred from the claim text.