IP Library Granted Patent US 8,799,515
Granted Patent B1
US 8,799,515 · App. 11/166,779 · Granted Aug 5, 2014

Rewriting of client-side executed scripts in the operation of an SSL VPN

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,799,515
App. No.
11/166,779
Granted
Aug 5, 2014
Kind
B1
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.

Claims (77)

1. 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.

2. The network device of claim 1 , where the session between the network device and the client device is established as a Secure Sockets Layer (SSL) Virtual Private Network (VPN) session.

3. The network device of claim 1 , where the processor is further to:

receive resource requests from the client device based on the rewritten later-binding URL-based link entity.

4. The network device of claim 3 , where the processor is further to:

forward the resource requests to a server device based on information extracted from the rewritten later-binding URL-based link entity.

5. The network device of claim 1 , where the XSLT template is associated with the XSLT script as a XSL link reference.

6. The network device of claim 1 , where the XSLT template is associated with the XSLT script by being directly copied into the XSLT script.

7. The network device of claim 1 , where

the network device is a gateway located between the client device and a server device, and

the processor is further to:

receive the XSLT script from the server device.

8. 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.

9. The method of claim 8 , where the session between the network device and the client device is established as a Secure Sockets Layer (SSL) Virtual Private Network (VPN) session.

10. The method of claim 8 , further comprising:

receiving resource requests from the client device based on the rewritten later-binding URL-based link entity.

11. The method of claim 10 , further comprising:

forwarding the resource requests to a server device based on information extracted from the rewritten later-binding URL-based link entity.

12. The method of claim 8 , where the XSLT template is associated with the XSLT script as a XSL link reference.

13. The method of claim 8 , where the XSLT template is associated with the XSLT script by being directly copied into the XSLT script.

14. The method of claim 8 , where

the network device is a gateway located between the client device and a server device, and

the method further includes:

receiving the XSLT script from the server device.

15. 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.

16. The non-transitory computer-readable medium of claim 15 , where the session between the network device and the client device is established as a Secure Sockets Layer (SSL) Virtual Private Network (VPN) session.

17. The non-transitory computer-readable medium of claim 15 , where the instructions further include:

one or more instructions to receive resource requests from the client device based on the rewritten later-binding URL-based link entity.

18. The non-transitory computer-readable medium of claim 17 , where the instructions further include:

one or more instructions to forward the resource requests to a server device based on information extracted from the rewritten later-binding URL-based link entity.

19. The non-transitory computer-readable medium of claim 15 , where the XSLT template is associated with the XSLT script as a XSL link reference.

20. The non-transitory computer-readable medium of claim 15 , where the XSLT template is associated with the XSLT script by being directly copied into the XSLT script.

Assignments (16)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY 14633493 WHICH WAS ENTERED INCORRECTLY AS 14633793 PREVIOUSLY RECORDED ON REEL 71176 FRAME 315. ASSIGNOR(S) HEREBY CONFIRMS THE FIRST LIEN NEWCO SECURITY AGREEMENT. Recorded Nov 10, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 073818/0515 →
FIRST LIEN NEWCO SECURITY AGREEMENT Recorded May 5, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 071176/0315 →
SECURITY INTEREST Recorded May 3, 2025
From: PULSE SECURE LLC
To: ALTER DOMUS (US) LLC
Reel/Frame 071165/0027 →
NOTICE OF SUCCESSION OF AGENCY FOR SECURITY INTEREST AT REEL/FRAME 054665/0873 Recorded Apr 29, 2025
From: BANK OF AMERICA, N.A., AS RESIGNING AGENT
To: ALTER DOMUS (US) LLC, AS SUCCESSOR AGENT
Reel/Frame 071123/0386 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; IVANTI, INC.; MOBILEIRON, INC.; IVANTI US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 054665/0062 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; INVANTI, INC.; MOBILEIRON, INC.; INVANTI US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 054665/0873 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 053638-0220 Recorded Dec 1, 2020
From: KKR LOAN ADMINISTRATION SERVICES LLC
To: PULSE SECURE, LLC
Reel/Frame 054559/0368 →
SECURITY INTEREST Recorded Aug 29, 2020
From: PULSE SECURE, LLC
To: KKR LOAN ADMINISTRATION SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 053638/0220 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 042380/0859 Recorded Aug 29, 2020
From: CERBERUS BUSINESS FINANCE, LLC, AS AGENT
To: PULSE SECURE, LLC
Reel/Frame 053638/0259 →
RELEASE OF SECURITY INTEREST Recorded Jul 21, 2020
From: JUNIPER NETWORKS, INC.
To: PULSE SECURE, LLC; SMOBILE SYSTEMS, INC.
Reel/Frame 053271/0307 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL 037338, FRAME 0408 Recorded May 1, 2017
From: US BANK NATIONAL ASSOCIATION
To: PULSE SECURE, LLC
Reel/Frame 042381/0568 →
GRANT OF SECURITY INTEREST PATENTS Recorded May 1, 2017
From: PULSE SECURE, LLC
To: CERBERUS BUSINESS FINANCE, LLC, AS COLLATERAL AGENT
Reel/Frame 042380/0859 →
SECURITY INTEREST Recorded Dec 21, 2015
From: PULSE SECURE, LLC
To: U.S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037338/0408 →
SECURITY INTEREST Recorded Dec 30, 2014
From: PULSE SECURE, LLC; SMOBILE SYSTEMS, INC.
To: JUNIPER NETWORKS, INC.
Reel/Frame 034713/0950 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2014
From: JUNIPER NETWORKS, INC.
To: PULSE SECURE, LLC
Reel/Frame 034045/0717 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2005
From: WU, YUHUA
To: JUNIPER NETWORKS, INC.
Reel/Frame 016910/0075 →