Java Web Start. Brad Shuler Software Engineer Object Computing, Inc. St. Louis, MO



Similar documents
User Interface History

JAVA WEB START OVERVIEW

Quick and Easy Solutions With Free Java Libraries Part II

Java Client Side Application Basics: Decompiling, Recompiling and Signing

JAVA 2 Network Security

Configuring the BBj Jetty Web Server (rev10.02) for OSAS

Java. How to install the Java Runtime Environment (JRE)

HOW TO CONFIGURE PASS-THRU PROXY FOR ORACLE APPLICATIONS

This presentation covers virtual application shared services supplied with IBM Workload Deployer version 3.1.

WEEK 2 DAY 14. Writing Java Applets and Java Web Start Applications

UBS KeyLink Quick reference WEB Installation Guide

Troubleshooting Guide. 2.2 Click the Tools menu on Windows Explorer 2.3 Click Folder Options. This will open a dialog box:

Agenda. How to configure

Oracle JInitiator PM-CP-004. Technical FAQ. April 1999

CHAPTER 7 SSL CONFIGURATION AND TESTING

Introduction to Mobile Access Gateway Installation

Usage of Evaluate Client Certificate with SSL support in Mediator and CentraSite

SEZ SEZ Online Manual- DSC Signing with Java Applet. V Version 1.0 ersion 1.0

Com-Trader. Installation Guide

An Overview of Oracle Forms Server Architecture. An Oracle Technical White Paper April 2000

IUCLID 5 Guidance and Support

How To Understand The Architecture Of An Ulteo Virtual Desktop Server Farm

Java Web Start Guide

Stellar Phoenix Exchange Server Backup

Mesa DMS. Once you access the Mesa Document Management link, you will see the following Mesa DMS - Microsoft Internet Explorer" window:

Checking Browser Settings, and Basic System Requirements for QuestionPoint

Sabre VPN 2.0. The SVPN client is a Java Web Start application and is comprised of the following modules:

To begin, visit this URL:

Checking IE Settings, and Basic System Requirements for QuestionPoint

Configuring Secure Socket Layer (SSL) for use with BPM 7.5.x

Elluminate Live! Access Guide. Page 1 of 7

SafeNet KMIP and Google Cloud Storage Integration Guide

BarTender Print Portal. Web-based Software for Printing BarTender Documents WHITE PAPER

Accessing the Online Meeting Room (Blackboard Collaborate)

Witango Application Server 6. Installation Guide for Windows

DreamFactory Security Whitepaper Customer Information about Privacy and Security

Enabling SSL and Client Certificates on the SAP J2EE Engine

ComTrader Technical Requirements

QClaims Launch Instructions for Windows

Entrust Certificate Services. Java Code Signing. User Guide. Date of Issue: December Document issue: 2.0

Developing In Eclipse, with ADT

Java version 7 update 45 (7u45)

Elluminate Live! Access Guide. Page 1 of 7

Creating and Managing Certificates for My webmethods Server. Version 8.2 and Later

ComTrader Technical Requirements. version 1.6

Virtual Appliance Setup Guide

User guide. Business

Re-associating.ica file extension on Vista/Windows 7 machines

Click Start > Control Panel > System icon to open System Properties dialog box. Click Advanced > Environment Variables.

Contents Release Notes System Requirements Administering Jive for Office

Install and configure SSH server

Administering Jive for Outlook

CREATE A CUSTOM THEME WEBSPHERE PORTAL

Exploiting the Web with Tivoli Storage Manager

Elluminate Live! Troubleshooting Guide

BROWSER AND SYSTEM REQUIREMENTS

Configuring Security Features of Session Recording

FAQ: troubleshooting Java for Saba Web Access

IBM Security QRadar Vulnerability Manager Version User Guide

Packaging and Deploying Java Projects in Forte

Enterprise Content Management System Monitor. How to deploy the JMX monitor application in WebSphere ND clustered environments. Revision 1.

Zend Server 4.0 Beta 2 Release Announcement What s new in Zend Server 4.0 Beta 2 Updates and Improvements Resolved Issues Installation Issues

IEI emerge and Dedicated Micros Digital Video Recorder. Install, Setup, and Integration Guide. Version 3.0 and above

Oracle Forms Services Secure Web.Show_Document() calls to Oracle Reports

SSL Configuration on Weblogic Oracle FLEXCUBE Universal Banking Release [August] [2014]

Welcome To Paragon 3.0

Dynamic DNS How-To Guide

Best Practices. Understanding BeyondTrust Patch Management

Option nv, Gaston Geenslaan 14, B-3001 Leuven Tel Fax Page 1 of 14

Symantec On-Demand Protection 2.6 Juniper IVE SSL VPN 5.2 Integration Guide

1. Accessing the LONZA network from a private PC or Internet Café

Using Cockpit to browse via Google Chrome

Installation and Setup: Setup Wizard Account Information

Entrust Managed Services PKI Administrator Guide

Remote Vision(Java RDP Client) User Manual

Director and Certificate Authority Issuance

Test Automation Integration with Test Management QAComplete

Adeptia Suite 6.2. Application Services Guide. Release Date October 16, 2014

DeskNow. Ventia Pty. Ltd. Advanced setup. Version : 3.2 Date : 4 January 2007

HP Process Automation v6 Architecture/Technologies

HP INTEGRATED ARCHIVE PLATFORM

How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip

Installing Management Applications on VNX for File

CitiDirect BE SM Java Security Configuration Guide

new Business Online Technical Troubleshooting Guide

bbc Installing Your Development Environment Adobe LiveCycle ES July 2007 Version 8.0

System Planning, Deployment, and Best Practices Guide

FileMaker Server 14. FileMaker Server Help

Installing Oracle 12c Enterprise on Windows 7 64-Bit

Central Administration User Guide

Installing and Using the vnios Trial

WebNow. Installation and Setup Guide. ImageNow Version: 6.7.x Environment: Windows Web Application Server: Tomcat

Working with Portecle to update / create a Java Keystore.

Table of Contents. Welcome Login Password Assistance Self Registration Secure Mail Compose Drafts...

Forward proxy server vs reverse proxy server

Oracle Universal Content Management

Demystifying Java Platform Security Architecture

BarTender Version Upgrades. Best practices for updating your BarTender installation WHITE PAPER

Transcription:

Java Web Start Brad Shuler Software Engineer Object Computing, Inc. St. Louis, MO OCI Java Lunch, 30 Nov 2001

Overview Java Web Start (JWS) What is it? Demo How it works Deployment on Server Security Application Manager

Java Web Start - What is it? Java 2 Application Launcher Easy to Use (Browser Technology) Free Client Program Installer From Sun Reference Implementation of JNLP Java Network Launch Protocol (JNLP)

Java Web Start - Benefits 1 Click Activation Browser Desktop Icon Start Menu Application Manager Client-Side Caching Support Multiple Java Runtime Environments Java 2 Security Model Applications Update Automatically

Java Web Start - Benefits Compared to Applets Works with any Browser Does not require running Browser Complex GUI Development Possible One Time Download (uses caching) Connection Speed Independent (In fact, no connection needed) Realistic Security Sandbox

Java Web Start - Benefits Compared to XML/HTML Slower First Use Response Client Install Required Sophisticated ( Fat ) GUI Possible Network Independent

Launch With 1 Click

Java Web Start - How it Works Server Side Setup: New MIME Type Entry application/x-java-jnlp-file JNLP Deployment Manifest (.jnlp file) Describes how the application will be launched Describes how the application will appear in the Java Web Start Application Manager Extensible Markup Language (XML) Format

JNLP File <?xml version='1.0' encoding='utf-8'?> <jnlp codebase="http://www.bradshuler.com/jws" href="example.jnlp"> <information> <title>filechooserdemo</title> <vendor>object Computing, Inc.</vendor> <homepage href="index.html"/> <description>jfc FileChooserDemo App</description> <icon href="oci_logo.gif"/> <offline-allowed/> </information> <resources> <j2se version="1.3"/> <jar href="filechooserdemo.jar"/> <property name="key" value="value1"/> </resources> <security> <all-permissions/> </security> <application-desc main-class="filechooserdemo"/> </jnlp>

JNLP File - Codebase Attribute Codebase attribute provides base URL for all href s that follow <?xml version='1.0' encoding='utf-8'?> <jnlp codebase="http://www.bradshuler.com/jws" href="example.jnlp"> <information> <title>filechooserdemo</title> <vendor>object Computing, Inc.</vendor> <homepage href="index.html"/> <description>jfc FileChooserDemo App</description> <icon href="oci_logo.gif"/> <offline-allowed/> </information> <resources> <j2se version="1.3"/> <jar href="filechooserdemo.jar"/> <property name="key" value="value1"/> </resources> <security> <all-permissions/> </security> <application-desc main-class="filechooserdemo"/> </jnlp>

JNLP File - Self Reference Name of JNLP file itself. (Incorporates application into Web Start <?xml version='1.0' encoding='utf-8'?> Application Manager) <jnlp codebase="http://www.bradshuler.com/jws" href="example.jnlp"> <information> <title>filechooserdemo</title> <vendor>object Computing, Inc.</vendor> <homepage href="index.html"/> <description>jfc FileChooserDemo App</description> <icon href="oci_logo.gif"/> <offline-allowed/> </information> <resources> <j2se version="1.3"/> <jar href="filechooserdemo.jar"/> <property name="key" value="value1"/> </resources> <security> <all-permissions/> </security> <application-desc main-class="filechooserdemo"/> </jnlp>

JNLP File - Information Element <?xml version='1.0' encoding='utf-8'?> <jnlp codebase="http://www.bradshuler.com/jws" href="example.jnlp"> <information> <title>filechooserdemo</title> <vendor>object Computing, Inc.</vendor> <homepage href="index.html"/> <description>jfc FileChooserDemo App</description> <icon href="oci_logo.gif"/> <offline-allowed/> </information> <resources> <j2se version="1.3"/> <jar href="filechooserdemo.jar"/> <property name="key" value="value1"/> </resources> <security> <all-permissions/> </security> <application-desc main-class="filechooserdemo"/> </jnlp> Additional information about the application. (Visible in Application Manager, splash screen, and desktop icons) Allow application to launch without network connection

JNLP File - Resources Element <?xml version='1.0' encoding='utf-8'?> <jnlp codebase="http://www.bradshuler.com/jws" href="example.jnlp"> <information> <title>filechooserdemo</title> <vendor>object Computing, Inc.</vendor> <homepage href="index.html"/> <description>jfc FileChooserDemo App</description> <icon href="oci_logo.gif"/> <offline-allowed/> </information> <resources> <j2se version="1.3"/> <jar href="filechooserdemo.jar"/> <property name="key" value="value1"/> </resources> <security> <all-permissions/> </security> <application-desc main-class="filechooserdemo"/> </jnlp> Java 2 Runtime Environment for this application

JNLP File - More on j2se Element <!-- Launch application only if JRE 1.3.1 is present --> <j2se version="1.3.1"/> <!-- Search list. Look on local system for best JRE. If cannot find any 1.4 JRE, use any 1.3, then 1.2.2 --> <j2se version= 1.4+ 1.3+ 1.2.2 /> <!-- Must use JRE 1.3.1. Provide URL to download if not installed. --> <j2se version= 1.3.1 href= http://java.sun.com/products/autodl/j2se /> <!-- Specify VM parameters (these 2 only at this time) --> <j2se version= 1.3+ initial-heap-size= 32m max-heap-size= 160m /> To see a list of what JRE s are installed on a client, launch the Java Web Start Application Manager.

JNLP File - Resources Element <?xml version='1.0' encoding='utf-8'?> <jnlp codebase="http://www.bradshuler.com/jws" href="example.jnlp"> <information> <title>filechooserdemo</title> <vendor>object Computing, Inc.</vendor> <homepage href="index.html"/> <description>jfc FileChooserDemo App</description> <icon href="oci_logo.gif"/> <offline-allowed/> </information> <resources> <j2se version="1.3"/> <jar href="filechooserdemo.jar"/> <property name="key" value="value1"/> </resources> <security> <all-permissions/> </security> <application-desc main-class="filechooserdemo"/> </jnlp> Place all class files, image files, and native code libraries in JAR files.

JNLP File - More on jar Element <!-- This JAR contains main (main specified in manifest). --> <jar href= application.jar main= true /> <!-- Can t launch without this jar (default) --> <jar href= application.jar download= eager /> <!-- Download after launch (don t put your main class here!) --> <jar href= jars/audio/win32/sounds.jar download= lazy /> <!-- Specify a version. --> <jar href= infrastructure.jar version= 1.22 /> <!-- Native library. --> <nativelib href= jars/solaris/infrastructure.so.jar /> (Advanced) Use the DownloadService in the JNLP API to check the cache at runtime for JAR versions. If no main attribute is specified, the JAR holding the main class must be listed first.

JNLP File - System Properties <?xml version='1.0' encoding='utf-8'?> <jnlp codebase="http://www.bradshuler.com/jws" href="example.jnlp"> <information> <title>filechooserdemo</title> <vendor>object Computing, Inc.</vendor> <homepage href="index.html"/> <description>jfc FileChooserDemo App</description> <icon href="oci_logo.gif"/> <offline-allowed/> </information> <resources> <j2se version="1.3"/> <jar href="filechooserdemo.jar"/> <property name="key" value="value1"/> </resources> <security> <all-permissions/> </security> <application-desc main-class="filechooserdemo"/> </jnlp> Specify any number of system property name-value pairs.

JNLP File - Security Element <?xml version='1.0' encoding='utf-8'?> <jnlp codebase="http://www.bradshuler.com/jws" href="example.jnlp"> <information> <title>filechooserdemo</title> <vendor>object Computing, Inc.</vendor> <homepage href="index.html"/> <description>jfc FileChooserDemo App</description> <icon href="oci_logo.gif"/> <offline-allowed/> </information> <resources> <j2se version="1.3"/> <jar href="filechooserdemo.jar"/> <property name="key" value="value1"/> </resources> <security> <all-permissions/> </security> <application-desc main-class="filechooserdemo"/> </jnlp> Request full access to client system. Requires all JAR files to be digitally signed. Requires user s permission.

JNLP File - Main Class Element <?xml version='1.0' encoding='utf-8'?> <jnlp codebase="http://www.bradshuler.com/jws" href="example.jnlp"> <information> <title>filechooserdemo</title> <vendor>object Computing, Inc.</vendor> <homepage href="index.html"/> <description>jfc FileChooserDemo App</description> <icon href="oci_logo.gif"/> <offline-allowed/> </information> <resources> <j2se version="1.3"/> <jar href="filechooserdemo.jar"/> <property name="key" value="value1"/> </resources> <security> <all-permissions/> </security> <application-desc main-class="filechooserdemo"/> </jnlp>

JNLP File - More on main Class <!-- Pass in some arguments --> <application-desc main-class= edu.purdue.ie.mightycad > <argument>-jconsole disable</argument> <argument>courier New</argument> </application-desc> The application-desc element is optional. If not present, the first JAR file listed in the resources element must contain a manifest file pointing to the main class. A similar element for Applets, applet-desc allows Java Web Start to launch applets using the built in AppletViewer.

Java Web Start - Security Specify the all-permissions element to: security all-permissions security Access the Local File System Access Printer(s) Read/Write to Shared System-wide Clipboard Access the Local Network Read System Properties Install a custom SecurityManager Retrieve JARS from anywhere Use Native Libraries Support for fine-grained permissions is mentioned in JNLP specification, but not yet implemented (Java Bug Database #4398087).

Java Web Start - Security (cont.) Requirements for full access: All JAR files must be digitally signed Assures user no one has tampered with the JAR Uses public key encryption (public/private keys) JAR Signing Requires: Java 2 SDK jarsigner tool A Certificate Assures the user public/private keys in JAR are yours. Should come from a Certifying Authority (i.e.. VeriSign) Does not mean the user should trust the application (Yes, Brad Shuler signed the JAR. But... Do I trust Brad Shuler?)

Java Web Start - Security (cont.) Issues with Certificates They Cost $$$ (Paid to certifying authority) Take time to get (procurement cycle) The Alternative.. Create a Self Signed Test Certificate Should be used for testing and prototypes only

Java Web Start - Example Signing a JAR using a Test Certificate: Self Signed (use for testing only!):

Example: Creating a Test Certificate Step 1: Creating a keystore Use the Java 2 SDK keytool program Creates a keystore file on the local machine Holds public and private keys Public key exported as a certificate

Example: Creating a Test Certificate Step 1: Creating a keystore

Example: Creating a Test Certificate Step 1: Creating a keystore (list contents)

Example: Creating a Test Certificate Step 1: Creating a keystore (file location) Note:.keystore is the default file name, Create a custom name using: keytool -keystore name

Example: Signing a JAR File Step 2: Use the Java 2 SDK jarsigner program Exports certificate from keystore, places in JAR Each file in archive is given a digest entry in the manifest. Digest entries are one way hashes -- if file is modified, it s hash value is no longer valid. When JAR is being verified (by Java Web Start), digests are recomputed and compared to values in manifest.

Example: Signing a JAR File Step 2: Use the Java 2 SDK jarsigner program Finally, move the file to the web server deployment area. Note: The Ant SignJar Built-In Task makes signing JARS seamless..

Java Web Start Application Manager Manage the application cache Add desktop icons, Start menu entries Enable the Java Console Enable Logging Configure HTTP proxy settings View installed JRE s View, import, export certificates

Java Web Start Application Manager

Java Web Start: JNLP API BasicService (query environment) ClipboardService (access clipboard data) DownloadService (control how cached) FileOpenService (see local disk) FileSaveService (write to local disk) PrintService PersistentService (similar to cookies)

Summary Java Web Start: Provides the plumbing to allow client machines to download a centralized Java 2 application over a network and run on their machine -- all with one click. Always guarantees the user is running the latest version. Is secure (Java 2 Security Model)

References Sun Java Web Start Home Page - http://java.sun.com/products/javawebstart/index.html Sun Java Developer Connection JWS/JNLP Forum: http://forum.java.sun.com/forum.jsp?forum=38 Java Community Process (JNLP Specification) - http://jcp.org/aboutjava/communityprocess/final/jsr056/index.html JavaWorld - http://www.javaworld.com/javaworld/jw-07-2001/jw-0706- webstart.html IBM - http://www.ibm.com/developerworks/library/j-webstart/index.html Unofficial Java Web Start FAQ - http://www.geocities.com/vamp201/jwsfaq.html