summaryrefslogtreecommitdiff
path: root/BKUOnline/src/main/webapp
diff options
context:
space:
mode:
Diffstat (limited to 'BKUOnline/src/main/webapp')
-rw-r--r--BKUOnline/src/main/webapp/HTTP-ohne.html85
-rw-r--r--BKUOnline/src/main/webapp/META-INF/MANIFEST.MF3
-rw-r--r--BKUOnline/src/main/webapp/META-INF/context.xml18
-rw-r--r--BKUOnline/src/main/webapp/WEB-INF/applicationContext.xml43
-rw-r--r--BKUOnline/src/main/webapp/WEB-INF/sun-jaxws.xml36
-rw-r--r--BKUOnline/src/main/webapp/WEB-INF/web.xml97
-rw-r--r--BKUOnline/src/main/webapp/WEB-INF/wsdl/stal.wsdl82
-rw-r--r--BKUOnline/src/main/webapp/WEB-INF/wsdl/stal.xsd135
-rw-r--r--BKUOnline/src/main/webapp/appletPage.jsp65
-rw-r--r--BKUOnline/src/main/webapp/expired.html28
-rw-r--r--BKUOnline/src/main/webapp/index.html59
-rw-r--r--BKUOnline/src/main/webapp/js/deployJava.js886
12 files changed, 1537 insertions, 0 deletions
diff --git a/BKUOnline/src/main/webapp/HTTP-ohne.html b/BKUOnline/src/main/webapp/HTTP-ohne.html
new file mode 100644
index 00000000..9cdd67ab
--- /dev/null
+++ b/BKUOnline/src/main/webapp/HTTP-ohne.html
@@ -0,0 +1,85 @@
+<!--
+ Copyright 2008 Federal Chancellery Austria and
+ Graz University of Technology
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>Infobox Requests</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+</head>
+<body>
+<h1>Securitykapsel - HTTP-Bindung</h1>
+<style type="text/css">
+fieldset {
+ padding: 1em;
+ font: 80%/ 1 sans-serif;
+ background-color: #F2EFE9;
+ padding-left: 5em;
+}
+
+fieldset.submit {
+ float: none;
+ width: auto;
+ border: 0 none #FFF;
+ padding-left: 14em;
+ border-style: none;
+ background-color: transparent;
+}
+
+label {
+ float: left;
+ width: 8em;
+ margin-right: 0.5em;
+ padding-top: 0.2em;
+ text-align: right;
+ font-weight: bold;
+ color: #000;
+ padding-top: 0.2em;
+}
+
+legend {
+ border: 1px solid;
+ padding: 2px 6px
+}
+</style>
+
+<p>
+<form action="./http-security-layer-request" method="Post"
+ enctype="application/x-www-form-urlencoded">
+<fieldset><legend>Enter XML Request</legend>
+<p><label for="XMLRequest">XML Request</label> <textarea
+ name="XMLRequest" rows=15 cols="60" id="XMLRequest">
+<?xml version="1.0" encoding="UTF-8" ?>
+<sl:InfoboxReadRequest
+ xmlns:sl="http://www.buergerkarte.at/namespaces/securitylayer/1.2#">
+<sl:InfoboxIdentifier>IdentityLink</sl:InfoboxIdentifier>
+<sl:BinaryFileParameters ContentIsXMLEntity="true" />
+</sl:InfoboxReadRequest>
+</textarea></p>
+<!--
+<p><label for="RedirectURL">RedirectURL</label> <input
+ name="RedirectURL" value="" id="RedirectURL"></p>
+<p><label for="DataURL">DataURL</label> <input name="DataURL"
+ value="" id="DataURL"></p>
+<p><label for="StyleSheetURL">StyleSheetURL</label> <input
+ name="StyleSheetURL" value="" id="StyleSheetURL"></p>
+<p>
+ --></fieldset>
+<fieldset class="submit"><input type="submit" class="submit"></fieldset>
+</form>
+
+</body>
+</html>
diff --git a/BKUOnline/src/main/webapp/META-INF/MANIFEST.MF b/BKUOnline/src/main/webapp/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..5e949512
--- /dev/null
+++ b/BKUOnline/src/main/webapp/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path:
+
diff --git a/BKUOnline/src/main/webapp/META-INF/context.xml b/BKUOnline/src/main/webapp/META-INF/context.xml
new file mode 100644
index 00000000..3568c9ec
--- /dev/null
+++ b/BKUOnline/src/main/webapp/META-INF/context.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2008 Federal Chancellery Austria and
+ Graz University of Technology
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<Context path="/bkuonline"/>
diff --git a/BKUOnline/src/main/webapp/WEB-INF/applicationContext.xml b/BKUOnline/src/main/webapp/WEB-INF/applicationContext.xml
new file mode 100644
index 00000000..7a2f12b8
--- /dev/null
+++ b/BKUOnline/src/main/webapp/WEB-INF/applicationContext.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2008 Federal Chancellery Austria and
+ Graz University of Technology
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
+ <bean id="STALFactory" class="at.gv.egiz.stal.service.impl.RequestBrokerSTALFactory"
+ scope="singleton" />
+ <bean id="commandInvoker" class="at.gv.egiz.bku.binding.SLCommandInvokerImpl" />
+ <bean id="bindingProcessorManager" class="at.gv.egiz.bku.binding.BindingProcessorManagerImpl"
+ scope="singleton">
+ <constructor-arg ref="STALFactory"></constructor-arg>
+ <constructor-arg ref="commandInvoker"></constructor-arg>
+ </bean>
+ <bean
+ class="org.springframework.web.context.support.ServletContextAttributeExporter">
+ <property name="attributes">
+ <map>
+ <entry key="bindingProcessorManager">
+ <ref bean="bindingProcessorManager" />
+ </entry>
+ </map>
+ </property>
+ </bean>
+ <!-- Configure Configuration -->
+ <bean id="configurator" class="at.gv.egiz.bku.online.conf.Configurator"
+ scope="singleton">
+ </bean>
+</beans> \ No newline at end of file
diff --git a/BKUOnline/src/main/webapp/WEB-INF/sun-jaxws.xml b/BKUOnline/src/main/webapp/WEB-INF/sun-jaxws.xml
new file mode 100644
index 00000000..6e8f8b69
--- /dev/null
+++ b/BKUOnline/src/main/webapp/WEB-INF/sun-jaxws.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2008 Federal Chancellery Austria and
+ Graz University of Technology
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<!--
+ Description: tomcat deployement
+-->
+
+<endpoints
+ xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
+ version="2.0">
+
+ <endpoint
+ name="STALPort"
+ interface="at.gv.egiz.stal.service.STALPortType"
+ implementation="at.gv.egiz.stal.service.impl.STALServiceImpl"
+ wsdl="WEB-INF/wsdl/stal.wsdl"
+ service="{http://www.egiz.gv.at/wsdl/stal}STALService"
+ port="{http://www.egiz.gv.at/wsdl/stal}STALPort"
+ url-pattern="/stal" />
+
+</endpoints>
diff --git a/BKUOnline/src/main/webapp/WEB-INF/web.xml b/BKUOnline/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 00000000..417dabb8
--- /dev/null
+++ b/BKUOnline/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2008 Federal Chancellery Austria and
+ Graz University of Technology
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<web-app id="bkuonline" version="2.5"
+ xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+ <display-name>http-security-layer-request</display-name>
+
+ <!-- Begin Spring Config -->
+ <context-param>
+ <param-name>contextConfigLocation</param-name>
+ <param-value>/WEB-INF/applicationContext.xml</param-value>
+ </context-param>
+ <listener>
+ <listener-class>
+ org.springframework.web.context.ContextLoaderListener
+ </listener-class>
+ </listener>
+ <!-- End Spring Config -->
+
+ <!-- Begin BKU Config -->
+ <listener>
+ <listener-class>at.gv.egiz.bku.online.webapp.SessionTimeout</listener-class>
+ </listener>
+ <servlet>
+ <servlet-name>BKUServlet</servlet-name>
+ <servlet-class>at.gv.egiz.bku.online.webapp.BKURequestHandler</servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>ResultServlet</servlet-name>
+ <servlet-class>at.gv.egiz.bku.online.webapp.ResultServlet</servlet-class>
+ <init-param>
+ <param-name>responseEncoding</param-name>
+ <param-value>UTF-8</param-value>
+ </init-param>
+ <init-param>
+ <param-name>expiredPage</param-name>
+ <!-- FIXME -->
+ <param-value>expired.html</param-value>
+ </init-param>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>BKUServlet</servlet-name>
+ <url-pattern>/http-security-layer-request</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>BKUServlet</servlet-name>
+ <url-pattern>/https-security-layer-request</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>ResultServlet</servlet-name>
+ <url-pattern>/bkuResult</url-pattern>
+ </servlet-mapping>
+ <!-- End BKU Config -->
+
+
+
+ <!-- Begin STAL Config -->
+ <listener>
+ <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
+ </listener>
+ <servlet>
+ <servlet-name>STALPort</servlet-name>
+ <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>STALPort</servlet-name>
+ <url-pattern>/stal</url-pattern>
+ </servlet-mapping>
+ <!-- End STAL Config -->
+ <welcome-file-list>
+ <welcome-file>index.html</welcome-file>
+ <welcome-file>index.htm</welcome-file>
+ <welcome-file>index.jsp</welcome-file>
+ <welcome-file>default.html</welcome-file>
+ <welcome-file>default.htm</welcome-file>
+ <welcome-file>default.jsp</welcome-file>
+ </welcome-file-list>
+ <session-config>
+ <session-timeout>3</session-timeout>
+ </session-config>
+</web-app> \ No newline at end of file
diff --git a/BKUOnline/src/main/webapp/WEB-INF/wsdl/stal.wsdl b/BKUOnline/src/main/webapp/WEB-INF/wsdl/stal.wsdl
new file mode 100644
index 00000000..a9f16a12
--- /dev/null
+++ b/BKUOnline/src/main/webapp/WEB-INF/wsdl/stal.wsdl
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2008 Federal Chancellery Austria and
+ Graz University of Technology
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<definitions name="stal" targetNamespace="http://www.egiz.gv.at/wsdl/stal"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.egiz.gv.at/wsdl/stal" xmlns:ns="http://www.egiz.gv.at/stal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <types>
+ <xsd:schema targetNamespace="http://www.egiz.gv.at/wsdl/stal">
+ <xsd:import namespace="http://www.egiz.gv.at/stal" schemaLocation="stal.xsd"/>
+ </xsd:schema>
+ </types>
+ <message name="NextRequestRequest">
+ <part name="part1" element="ns:GetNextRequest"/>
+ </message>
+ <message name="NextRequestResponse">
+ <part name="part1" element="ns:GetNextRequestResponse"/>
+ </message>
+ <message name="GetHashDataInputRequest">
+ <part name="part1" element="ns:GetHashDataInput"/>
+ </message>
+ <message name="GetHashDataInputResponse">
+ <part name="part1" element="ns:GetHashDataInputResponse"/>
+ </message>
+ <message name="GetHashDataInputFault">
+ <part name="part1" element="ns:GetHashDataInputFault"/>
+ </message>
+ <portType name="STALPortType">
+ <operation name="nextRequest">
+ <input name="input1" message="tns:NextRequestRequest"/>
+ <output name="output1" message="tns:NextRequestResponse"/>
+ </operation>
+ <operation name="getHashDataInput">
+ <input name="input2" message="tns:GetHashDataInputRequest"/>
+ <output name="output2" message="tns:GetHashDataInputResponse"/>
+ <fault name="fault1" message="tns:GetHashDataInputFault"/>
+ </operation>
+ </portType>
+ <binding name="STALBinding" type="tns:STALPortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="nextRequest">
+ <soap:operation/>
+ <input name="input1">
+ <soap:body use="literal"/>
+ </input>
+ <output name="output1">
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="getHashDataInput">
+ <soap:operation/>
+ <input name="input2">
+ <soap:body use="literal"/>
+ </input>
+ <output name="output2">
+ <soap:body use="literal"/>
+ </output>
+ <fault name="fault1">
+ <soap:fault name="fault1"/>
+ </fault>
+ </operation>
+ </binding>
+ <service name="STALService">
+ <port name="STALPort" binding="tns:STALBinding">
+ <soap:address location="http://localhost:${HttpDefaultPort}/stal"/>
+ </port>
+ </service>
+</definitions>
diff --git a/BKUOnline/src/main/webapp/WEB-INF/wsdl/stal.xsd b/BKUOnline/src/main/webapp/WEB-INF/wsdl/stal.xsd
new file mode 100644
index 00000000..6627db00
--- /dev/null
+++ b/BKUOnline/src/main/webapp/WEB-INF/wsdl/stal.xsd
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2008 Federal Chancellery Austria and
+ Graz University of Technology
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.egiz.gv.at/stal"
+ xmlns:tns="http://www.egiz.gv.at/stal"
+ elementFormDefault="qualified">
+ <element name="GetNextRequest" type="tns:GetNextRequestType"/>
+ <element name="GetNextRequestResponse" type="tns:GetNextRequestResponseType"/>
+ <element name="GetHashDataInput" type="tns:GetHashDataInputType"/>
+ <element name="GetHashDataInputResponse" type="tns:GetHashDataInputResponseType"/>
+ <element name="GetHashDataInputFault" type="tns:GetHashDataInputFaultType"/>
+ <complexType name="GetNextRequestType">
+ <sequence>
+ <element name="Response" type="tns:ResponseType" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="sessionId" type="string"/>
+ <!--choice maxOccurs="unbounded">
+ <element name="InfoboxReadResponse" type="tns:InfoboxReadResponseType"/>
+ <element name="SignResponse" type="tns:SignResponseType"/>
+ <element name="ErrorResponse" type="tns:ErrorResponseType"/>
+ </choice-->
+ </complexType>
+ <complexType name="ResponseType" abstract="true">
+ <attribute name="Id" type="ID"/>
+ </complexType>
+ <complexType name="InfoboxReadResponseType">
+ <complexContent>
+ <extension base="tns:ResponseType">
+ <sequence>
+ <element name="InfoboxValue" type="base64Binary"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+ <complexType name="SignResponseType">
+ <complexContent>
+ <extension base="tns:ResponseType">
+ <sequence>
+ <element name="SignatureValue" type="base64Binary"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+ <complexType name="ErrorResponseType">
+ <complexContent>
+ <extension base="tns:ResponseType">
+ <sequence>
+ <element name="ErrorCode" type="int"/>
+ <element name="ErrorMessage" type="string"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+ <complexType name="GetNextRequestResponseType">
+ <sequence>
+ <element name="Request" type="tns:RequestType" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="sessionId" type="string"/>
+ <!--choice maxOccurs="unbounded">
+ <element name="InfoboxReadRequest" type="tns:InfoboxReadRequestType"/>
+ <element name="SignRequest" type="tns:SignRequestType"/>
+ <element name="QuitRequest" type="tns:QuitRequestType"/>
+ </choice-->
+ </complexType>
+ <complexType name="RequestType" abstract="true"/>
+ <complexType name="InfoboxReadRequestType">
+ <complexContent>
+ <extension base="tns:RequestType">
+ <sequence>
+ <element name="InfoboxIdentifier" type="string"/>
+ <element name="DomainIdentifier" type="string" minOccurs="0"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+ <complexType name="SignRequestType">
+ <complexContent>
+ <extension base="tns:RequestType">
+ <sequence>
+ <element name="KeyIdentifier" type="string"/>
+ <element name="SignedInfo" type="base64Binary"/>
+ </sequence>
+ </extension>
+ </complexContent>
+ </complexType>
+ <complexType name="QuitRequestType">
+ <complexContent>
+ <extension base="tns:RequestType"/>
+ </complexContent>
+ </complexType>
+ <complexType name="GetHashDataInputType">
+ <sequence>
+ <element name="Reference" maxOccurs="unbounded">
+ <complexType>
+ <attribute name="ID" type="string"/>
+ </complexType>
+ </element>
+ </sequence>
+ <attribute name="sessionId" type="string"/>
+ </complexType>
+ <complexType name="GetHashDataInputResponseType">
+ <sequence>
+ <element name="Reference" maxOccurs="unbounded">
+ <complexType>
+ <simpleContent>
+ <extension base="base64Binary">
+ <attribute name="ID" type="ID"/>
+ </extension>
+ </simpleContent>
+ </complexType>
+ </element>
+ </sequence>
+ <attribute name="sessionId" type="string"/>
+ </complexType>
+ <complexType name="GetHashDataInputFaultType">
+ <sequence>
+ <element name="ErrorCode" type="int"/>
+ <element name="ErrorMessage" type="string"/>
+ </sequence>
+ </complexType>
+</schema>
diff --git a/BKUOnline/src/main/webapp/appletPage.jsp b/BKUOnline/src/main/webapp/appletPage.jsp
new file mode 100644
index 00000000..684a8dca
--- /dev/null
+++ b/BKUOnline/src/main/webapp/appletPage.jsp
@@ -0,0 +1,65 @@
+<!--
+ Copyright 2008 Federal Chancellery Austria and
+ Graz University of Technology
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Applet BKU Test</title>
+</head>
+<body>
+<script src="./js/deployJava.js"></script>
+<script>
+ if (!deployJava.versionCheck('1.6.0')) {
+ document
+ .write('<b>Diese Anwendung benötigt die Java Platform Version 1.6.0 oder höher.</b>' + '<input type="submit" value="Java Platform 1.6.0 installieren" onclick="deployJava.installLatestJRE();">');
+ } else {
+ var attributes = {
+ codebase :'applet',
+ code :'at.gv.egiz.bku.online.applet.BKUApplet.class',
+ archive :'BKUApplet-1.0-SNAPSHOT.jar, commons-logging-1.1.1.jar, iaik_jce_me4se-3.04.jar',
+ width :500,
+ height :200
+ };
+ var parameters = {
+ WSDL_URL :'../stal?wsdl',
+ SessionID : '<%= session.getId() %>',
+ redirectURL : '../bkuResult'
+ };
+ var version = '1.6.0';
+ deployJava.runApplet(attributes, parameters, version);
+ }
+</script>
+<br />
+<script>
+ document.write('App Name: ' + navigator.appName + '<BR>');
+ document.write('User Agent: ' + navigator.userAgent + '<BR>');
+ var list = deployJava.getJREs();
+ if (list.length == 0) {
+ document.write('No Detectable Java Platforms are Installed<BR>');
+ } else {
+ var result = list[0];
+ for ( var i = 1; i < list.length; i++) {
+ result += ", " + list[i];
+ }
+ document.write("You have the following Java Platform(s) installed:"
+ + result + "<BR>");
+ }
+</script>
+</body>
+</html>
diff --git a/BKUOnline/src/main/webapp/expired.html b/BKUOnline/src/main/webapp/expired.html
new file mode 100644
index 00000000..67ca94bc
--- /dev/null
+++ b/BKUOnline/src/main/webapp/expired.html
@@ -0,0 +1,28 @@
+<!--
+ Copyright 2008 Federal Chancellery Austria and
+ Graz University of Technology
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Session Expired</title>
+</head>
+<body>
+ <p>
+ Ihre Sitzung ist abgelaufen. Ein neuer BKU request kann im <a href="HTTP-ohne.html">Requestformular</a> erstellt werden.
+ </p>
+</body>
+</html> \ No newline at end of file
diff --git a/BKUOnline/src/main/webapp/index.html b/BKUOnline/src/main/webapp/index.html
new file mode 100644
index 00000000..8f1a338e
--- /dev/null
+++ b/BKUOnline/src/main/webapp/index.html
@@ -0,0 +1,59 @@
+<!--
+ Copyright 2008 Federal Chancellery Austria and
+ Graz University of Technology
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>BKU Online</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+</head>
+<body>
+<style type="text/css">
+ .box {
+ margin-top: 10px;
+ color: #292929;
+ width: 300px;
+ border: 1px solid #BABABA;
+ background-color: #ddd;
+ padding-left: 10px;
+ padding-right: 10px;
+ margin-left: 10px;
+ margin-bottom: 1em;
+ -o-border-radius: 10px;
+ -moz-border-radius: 12px;
+ -webkit-border-radius: 10px;
+ -webkit-box-shadow: 0px 3px 7px #adadad;
+ border-radius: 10px;
+ -moz-box-sizing: border-box;
+ -opera-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -khtml-box-sizing: border-box;
+ box-sizing: border-box;
+ overflow: hidden;
+ }
+</style>
+<div id="animDiv" class="box">
+<p>
+<h1>TestRequest</h1>
+<a href="HTTP-ohne.html">Security Layer Request</a>
+<h1>STAL Service</h1>
+<a href="stal">STAL Service Endpoint Information</a>
+</p>
+</div>
+
+
+</body>
+</html>
diff --git a/BKUOnline/src/main/webapp/js/deployJava.js b/BKUOnline/src/main/webapp/js/deployJava.js
new file mode 100644
index 00000000..4d8a0ca3
--- /dev/null
+++ b/BKUOnline/src/main/webapp/js/deployJava.js
@@ -0,0 +1,886 @@
+/*
+ * Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Sun Microsystems nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * deployJava.js
+ *
+ * This file is part of the Deployment Toolkit. It provides functions for web
+ * pages to detect the presence of a JRE, install the latest JRE, and easily run
+ * applets or Web Start programs. Usage guide may be found at http://<TBD>/.
+ *
+ * The "live" copy of this file may be found at
+ * http://java.com/js/deployJava.js.
+ * You are encouraged to link directly to the live copy of the file.
+ *
+ * @version @(#)deployJava.js 1.11 08/07/11
+ */
+
+var deployJava = {
+ debug: null,
+
+ myInterval: null,
+ preInstallJREList: null,
+ returnPage: null,
+ brand: null,
+ locale: null,
+ installType: null,
+
+ EAInstallEnabled: false,
+ EarlyAccessURL: null,
+
+ // GetJava page
+ getJavaURL: 'http://java.sun.com/webapps/getjava/BrowserRedirect?host=java.com',
+
+ // Apple redirect page
+ appleRedirectPage: 'http://www.apple.com/support/downloads/',
+
+ // mime-type of the DeployToolkit plugin object
+ mimeType: 'application/npruntime-scriptable-plugin;DeploymentToolkit',
+
+ // location of the Java Web Start launch button graphic
+ launchButtonPNG: 'http://java.sun.com/products/jfc/tsc/articles/swing2d/webstart.png',
+
+
+ /**
+ * Returns an array of currently-installed JRE version strings.
+ * Version strings are of the form #.#[.#[_#]], with the function returning
+ * as much version information as it can determine, from just family
+ * versions ("1.4.2", "1.5") through the full version ("1.5.0_06").
+ *
+ * Detection is done on a best-effort basis. Under some circumstances
+ * only the highest installed JRE version will be detected, and
+ * JREs older than 1.4.2 will not always be detected.
+ */
+ getJREs: function() {
+ var list = new Array();
+ if (deployJava.isPluginInstalled()) {
+ var plugin = deployJava.getPlugin();
+ for (var i = 0; i < plugin.jvms.getLength(); i++) {
+ list[i] = plugin.jvms.get(i).version;
+ }
+ } else {
+ var browser = deployJava.getBrowser();
+
+ if (browser == 'MSIE') {
+ if (deployJava.testUsingActiveX('1.8.0')) {
+ list[0] = '1.8.0';
+ } else if (deployJava.testUsingActiveX('1.7.0')) {
+ list[0] = '1.7.0';
+ } else if (deployJava.testUsingActiveX('1.6.0')) {
+ list[0] = '1.6.0';
+ } else if (deployJava.testUsingActiveX('1.5.0')) {
+ list[0] = '1.5.0';
+ } else if (deployJava.testUsingActiveX('1.4.2')) {
+ list[0] = '1.4.2';
+ } else if (deployJava.testForMSVM()) {
+ list[0] = '1.1';
+ }
+ }
+ else if (browser == 'Netscape Family') {
+ if (deployJava.testUsingMimeTypes('1.8')) {
+ list[0] = '1.8.0';
+ } else if (deployJava.testUsingMimeTypes('1.7')) {
+ list[0] = '1.7.0';
+ } else if (deployJava.testUsingMimeTypes('1.6')) {
+ list[0] = '1.6.0';
+ } else if (deployJava.testUsingMimeTypes('1.5')) {
+ list[0] = '1.5.0';
+ } else if (deployJava.testUsingMimeTypes('1.4.2')) {
+ list[0] = '1.4.2';
+ }
+ } else if (browser == 'Safari') {
+ if (deployJava.testUsingPluginsArray('1.8.0')) {
+ list[0] = '1.8.0';
+ } else if (deployJava.testUsingPluginsArray('1.7.0')) {
+ list[0] = '1.7.0';
+ } else if (deployJava.testUsingPluginsArray('1.6.0')) {
+ list[0] = '1.6.0';
+ } else if (deployJava.testUsingPluginsArray('1.5.0')) {
+ list[0] = '1.5.0';
+ } else if (deployJava.testUsingPluginsArray('1.4.2')) {
+ list[0] = '1.4.2';
+ }
+ }
+ }
+
+ if (deployJava.debug) {
+ for (var i = 0; i < list.length; ++i) {
+ alert('We claim to have detected Java SE ' + list[i]);
+ }
+ }
+
+ return list;
+ },
+
+ /**
+ * Triggers a JRE installation. The exact effect of triggering an
+ * installation varies based on platform, browser, and if the
+ * Deployment Toolkit plugin is installed.
+ *
+ * The requestVersion string is of the form #[.#[.#[_#]]][+|*],
+ * which includes strings such as "1.4", "1.5.0*", and "1.6.0_02+".
+ * A star (*) means "any version starting within this family" and
+ * a plus (+) means "any version greater or equal to this".
+ * "1.5.0*" * matches 1.5.0_06 but not 1.6.0_01, whereas
+ * "1.5.0+" matches both.
+ *
+ * If the Deployment Toolkit plugin is not present, this will just call
+ * deployJava.installLatestJRE().
+ */
+ installJRE: function(requestVersion) {
+ var ret = false;
+ if (deployJava.isPluginInstalled()) {
+ if (deployJava.getPlugin().installJRE(requestVersion)) {
+ deployJava.refresh();
+ if (deployJava.returnPage != null) {
+ document.location = deployJava.returnPage;
+ }
+ return true;
+ } else {
+ return false;
+ }
+ } else {
+ return deployJava.installLatestJRE();
+ }
+ },
+
+
+ /**
+ * Triggers a JRE installation. The exact effect of triggering an
+ * installation varies based on platform, browser, and if the
+ * Deployment Toolkit plugin is installed.
+ *
+ * In the simplest case, the browser window will be redirected to the
+ * java.com JRE installation page, and (if possible) a redirect back to
+ * the current URL upon successful installation. The return redirect is
+ * not always possible, as the JRE installation may require the browser to
+ * be restarted.
+ *
+ * In the best case (when the Deployment Toolkit plugin is present), this
+ * function will immediately cause a progress dialog to be displayed
+ * as the JRE is downloaded and installed.
+ */
+ installLatestJRE: function() {
+ if (deployJava.isPluginInstalled()) {
+ if (deployJava.getPlugin().installLatestJRE()) {
+ deployJava.refresh();
+ if (deployJava.returnPage != null) {
+ document.location = deployJava.returnPage;
+ }
+ return true;
+ } else {
+ return false;
+ }
+ } else {
+ var browser = deployJava.getBrowser();
+ var platform = navigator.platform.toLowerCase();
+ if ((deployJava.EAInstallEnabled == 'true') &&
+ (platform.indexOf('win') != -1) &&
+ (deployJava.EarlyAccessURL != null)) {
+
+ deployJava.preInstallJREList = deployJava.getJREs();
+ if (deployJava.returnPage != null) {
+ deployJava.myInterval =
+ setInterval("deployJava.poll()", 3000);
+ }
+
+ location.href = deployJava.EarlyAccessURL;
+
+ // we have to return false although there may be an install
+ // in progress now, when complete it may go to return page
+ return false;
+ } else {
+ if (browser == 'MSIE') {
+ return deployJava.IEInstall();
+ } else if ((browser == 'Netscape Family') &&
+ (platform.indexOf('win32') != -1)) {
+ return deployJava.FFInstall();
+ } else {
+ location.href = deployJava.getJavaURL +
+ ((deployJava.returnPage != null) ?
+ ('&returnPage=' + deployJava.returnPage) : '') +
+ ((deployJava.locale != null) ?
+ ('&locale=' + deployJava.locale) : '') +
+ ((deployJava.brand != null) ?
+ ('&brand=' + deployJava.brand) : '');
+ }
+ // we have to return false although there may be an install
+ // in progress now, when complete it may go to return page
+ return false;
+ }
+ }
+ },
+
+
+ /**
+ * Ensures that an appropriate JRE is installed and then runs an applet.
+ * minimumVersion is of the form #[.#[.#[_#]]], and is the minimum
+ * JRE version necessary to run this applet. minimumVersion is optional,
+ * defaulting to the value "1.1" (which matches any JRE).
+ * If an equal or greater JRE is detected, runApplet() will call
+ * writeAppletTag(attributes, parameters) to output the applet tag,
+ * otherwise it will call installJRE(minimumVersion + '+').
+ *
+ * After installJRE() is called, the script will attempt to detect that the
+ * JRE installation has completed and begin running the applet, but there
+ * are circumstances (such as when the JRE installation requires a browser
+ * restart) when this cannot be fulfilled.
+ *
+ * As with writeAppletTag(), this function should only be called prior to
+ * the web page being completely rendered. Note that version wildcards
+ * (star (*) and plus (+)) are not supported, and including them in the
+ * minimumVersion will result in an error message.
+ */
+ runApplet: function(attributes, parameters, minimumVersion) {
+ if (minimumVersion == 'undefined' || minimumVersion == null) {
+ minimumVersion = '1.1';
+ }
+
+ var regex = "^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$";
+
+ var matchData = minimumVersion.match(regex);
+
+ if (deployJava.returnPage == null) {
+ // if there is an install, come back here and run the applet
+ deployJava.returnPage = document.location;
+ }
+
+ if (matchData != null) {
+ var browser = deployJava.getBrowser();
+ if ((browser != '?') && (browser != 'Safari')) {
+ if (deployJava.versionCheck(minimumVersion + '+')) {
+ deployJava.writeAppletTag(attributes, parameters);
+ } else if (deployJava.installJRE(minimumVersion + '+')) {
+ // after successfull install we need to refresh page to pick
+ // pick up new plugin
+ deployJava.refresh();
+ location.href = document.location;
+ deployJava.writeAppletTag(attributes, parameters);
+ }
+ } else {
+ // for unknown or Safari - just try to show applet
+ deployJava.writeAppletTag(attributes, parameters);
+ }
+ } else {
+ if (deployJava.debug) {
+ alert('Invalid minimumVersion argument to runApplet():' +
+ minimumVersion);
+ }
+ }
+ },
+
+
+ /**
+ * Outputs an applet tag with the specified attributes and parameters, where
+ * both attributes and parameters are associative arrays. Each key/value
+ * pair in attributes becomes an attribute of the applet tag itself, while
+ * key/value pairs in parameters become <PARAM> tags. No version checking
+ * or other special behaviors are performed; the tag is simply written to
+ * the page using document.writeln().
+ *
+ * As document.writeln() is generally only safe to use while the page is
+ * being rendered, you should never call this function after the page
+ * has been completed.
+ */
+ writeAppletTag: function(attributes, parameters) {
+ var s = '<' + 'applet ';
+ for (var attribute in attributes) {
+ s += (' ' + attribute + '="' + attributes[attribute] + '"');
+ }
+ s += '>';
+ document.write(s);
+
+ if (parameters != 'undefined' && parameters != null) {
+ for (var parameter in parameters) {
+ s = '<param name="' + parameter + '" value="' +
+ parameters[parameter] + '">';
+ document.write(s);
+ }
+ }
+ document.write('<' + '/' + 'applet' + '>');
+ },
+
+
+ /**
+ * Returns true if there is a matching JRE version currently installed
+ * (among those detected by getJREs()). The versionPattern string is
+ * of the form #[.#[.#[_#]]][+|*], which includes strings such as "1.4",
+ * "1.5.0*", and "1.6.0_02+".
+ * A star (*) means "any version within this family" and a plus (+) means
+ * "any version greater or equal to the specified version". "1.5.0*"
+ * matches 1.5.0_06 but not 1.6.0_01, whereas "1.5.0+" matches both.
+ *
+ * If the versionPattern does not include all four version components
+ * but does not end with a star or plus, it will be treated as if it
+ * ended with a star. "1.5" is exactly equivalent to "1.5*", and will
+ * match any version number beginning with "1.5".
+ *
+ * If getJREs() is unable to detect the precise version number, a match
+ * could be ambiguous. For example if getJREs() detects "1.5", there is
+ * no way to know whether the JRE matches "1.5.0_06+". versionCheck()
+ * compares only as much of the version information as could be detected,
+ * so versionCheck("1.5.0_06+") would return true in in this case.
+ *
+ * Invalid versionPattern will result in a JavaScript error alert.
+ * versionPatterns which are valid but do not match any existing JRE
+ * release (e.g. "32.65+") will always return false.
+ */
+ versionCheck: function(versionPattern)
+ {
+ var index = 0;
+ var regex = "^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?(\\*|\\+)?$";
+
+ var matchData = versionPattern.match(regex);
+
+ if (matchData != null) {
+ var familyMatch = true;
+
+ var patternArray = new Array();
+
+ for (var i = 1; i < matchData.length; ++i) {
+ // browser dependency here.
+ // Fx sets 'undefined', IE sets '' string for unmatched groups
+ if ((typeof matchData[i] == 'string') && (matchData[i] != '')) {
+ patternArray[index] = matchData[i];
+ index++;
+ }
+ }
+
+ if (patternArray[patternArray.length-1] == '+') {
+ familyMatch = false;
+ patternArray.length--;
+ } else {
+ if (patternArray[patternArray.length-1] == '*') {
+ patternArray.length--;
+ }
+ }
+
+ var list = deployJava.getJREs();
+ for (var i = 0; i < list.length; ++i) {
+ if (deployJava.compareVersionToPattern(list[i], patternArray,
+ familyMatch)) {
+ return true;
+ }
+ }
+
+ return false;
+ } else {
+ alert('Invalid versionPattern passed to versionCheck: ' +
+ versionPattern);
+ return false;
+ }
+ },
+
+
+ /**
+ * Returns true if an installation of Java Web Start of the specified
+ * minimumVersion can be detected. minimumVersion is optional, and
+ * if not specified, '1.4.2' will be used.
+ * (Versions earlier than 1.4.2 may not be detected.)
+ */
+ isWebStartInstalled: function(minimumVersion) {
+
+ var browser = deployJava.getBrowser();
+ if ((browser == '?') || (browser == 'Safari')) {
+ // we really don't know - better to try to use it than reinstall
+ return true;
+ }
+
+ if (minimumVersion == 'undefined' || minimumVersion == null) {
+ minimumVersion = '1.4.2';
+ }
+
+ var retval = false;
+ var regex = "^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$";
+ var matchData = minimumVersion.match(regex);
+
+ if (matchData != null) {
+ retval = deployJava.versionCheck(minimumVersion + '+');
+ } else {
+ if (deployJava.debug) {
+ alert('Invalid minimumVersion argument to isWebStartInstalled(): ' + minimumVersion);
+ }
+ retval = deployJava.versionCheck('1.4.2+');
+ }
+ return retval;
+ },
+
+
+ /**
+ * Outputs a launch button for the specified JNLP URL. When clicked, the
+ * button will ensure that an appropriate JRE is installed and then launch
+ * the JNLP application. minimumVersion is of the form #[.#[.#[_#]]], and
+ * is the minimum JRE version necessary to run this JNLP application.
+ * minimumVersion is optional, and if it is not specified, '1.4.2'
+ * will be used.
+ * If an appropriate JRE or Web Start installation is detected,
+ * the JNLP application will be launched, otherwise installLatestJRE()
+ * will be called.
+ *
+ * After installLatestJRE() is called, the script will attempt to detect
+ * that the JRE installation has completed and launch the JNLP application,
+ * but there are circumstances (such as when the JRE installation
+ * requires a browser restart) when this cannot be fulfilled.
+ */
+ createWebStartLaunchButton: function(jnlp, minimumVersion) {
+
+ if (deployJava.returnPage == null) {
+ // if there is an install, come back and run the jnlp file
+ deployJava.returnPage = jnlp;
+ }
+
+ var url = 'javascript:' +
+ 'if (!deployJava.isWebStartInstalled(&quot;' +
+ minimumVersion + '&quot;)) {' +
+ 'if (deployJava.installLatestJRE()) {' +
+ 'if (deployJava.launch(&quot;' + jnlp + '&quot;)) {}' +
+ '}' +
+ '} else {' +
+ 'if (deployJava.launch(&quot;' + jnlp + '&quot;)) {}' +
+ '}';
+
+ document.write('<' + 'a href="' + url +
+ '" onMouseOver="window.status=\'\'; ' +
+ 'return true;"><' + 'img ' +
+ 'src="' + deployJava.launchButtonPNG + '" ' +
+ 'border="0" /><' + '/' + 'a' + '>');
+ },
+
+
+ /**
+ * Launch a JNLP application, (using the plugin if available)
+ */
+ launch: function(jnlp) {
+ if (deployJava.isPluginInstalled()) {
+ return deployJava.getPlugin().launch(jnlp);
+ } else {
+ document.location=jnlp;
+ return true;
+ }
+ },
+
+
+ /*
+ * returns true if the ActiveX or XPI plugin is installed
+ */
+ isPluginInstalled: function() {
+ var plugin = deployJava.getPlugin();
+ if (plugin && plugin.jvms) {
+ return true;
+ } else {
+ return false;
+ }
+ },
+
+ /*
+ * returns true if the plugin is installed and AutoUpdate is enabled
+ */
+ isAutoUpdateEnabled: function() {
+ if (deployJava.isPluginInstalled()) {
+ return deployJava.getPlugin().isAutoUpdateEnabled();
+ }
+ return false;
+ },
+
+ /*
+ * sets AutoUpdate on if plugin is installed
+ */
+ setAutoUpdateEnabled: function() {
+ if (deployJava.isPluginInstalled()) {
+ return deployJava.getPlugin().setAutoUpdateEnabled();
+ }
+ return false;
+ },
+
+ /*
+ * sets the preferred install type : null, online, kernel
+ */
+ setInstallerType: function(type) {
+ deployJava.installType = type;
+ if (deployJava.isPluginInstalled()) {
+ return deployJava.getPlugin().setInstallerType(type);
+ }
+ return false;
+ },
+
+ /*
+ * sets additional package list - to be used by kernel installer
+ */
+ setAdditionalPackages: function(packageList) {
+ if (deployJava.isPluginInstalled()) {
+ return deployJava.getPlugin().setAdditionalPackages(
+ packageList);
+ }
+ return false;
+ },
+
+ /*
+ * sets preference to install Early Access versions if available
+ */
+ setEarlyAccess: function(enabled) {
+ deployJava.EAInstallEnabled = enabled;
+ },
+
+ /*
+ * Determines if the next generation plugin (Plugin II) is default
+ */
+ isPlugin2: function() {
+ if (deployJava.isPluginInstalled()) {
+ try {
+ return deployJava.getPlugin().isPlugin2();
+ } catch (err) {
+ // older plugin w/o isPlugin2() function - just fall through
+ }
+ }
+ return false;
+ },
+
+
+ getPlugin: function() {
+ deployJava.refresh();
+ var ret = document.getElementById('deployJavaPlugin');
+ return ret;
+ },
+
+ compareVersionToPattern: function(version, patternArray, familyMatch) {
+ var regex = "^(\\d+)(?:\\.(\\d+)(?:\\.(\\d+)(?:_(\\d+))?)?)?$";
+ var matchData = version.match(regex);
+
+ if (matchData != null) {
+ var index = 0;
+ var result = new Array();
+
+ for (var i = 1; i < matchData.length; ++i) {
+ if ((typeof matchData[i] == 'string') && (matchData[i] != ''))
+ {
+ result[index] = matchData[i];
+ index++;
+ }
+ }
+
+ var l = Math.min(result.length, patternArray.length);
+
+ if (familyMatch) {
+ for (var i = 0; i < l; ++i) {
+ if (result[i] != patternArray[i]) return false;
+ }
+
+ return true;
+ } else {
+ for (var i = 0; i < l; ++i) {
+ if (result[i] < patternArray[i]) {
+ return false;
+ } else if (result[i] > patternArray[i]) {
+ return true;
+ }
+ }
+
+ return true;
+ }
+ } else {
+ return false;
+ }
+ },
+
+
+ getBrowser: function() {
+ var browser = navigator.userAgent.toLowerCase();
+
+ if (deployJava.debug) {
+ alert('userAgent -> ' + browser);
+ }
+
+ if ((navigator.vendor) &&
+ (navigator.vendor.toLowerCase().indexOf('apple') != -1) &&
+ (browser.indexOf('safari') != -1)) {
+ if (deployJava.debug) {
+ alert('We claim to have detected "Safari".');
+ }
+ return 'Safari';
+ } else if (browser.indexOf('msie') != -1) {
+ if (deployJava.debug) {
+ alert('We claim to have detected "IE".');
+ }
+ return 'MSIE';
+ } else if ((browser.indexOf('mozilla') != -1) ||
+ (browser.indexOf('firefox') != -1)) {
+ if (deployJava.debug) {
+ alert('We claim to have detected a Netscape family browser.');
+ }
+ return 'Netscape Family';
+ } else {
+ if (deployJava.debug) {
+ alert('We claim to have failed to detect a browser.');
+ }
+ return '?';
+ }
+ },
+
+
+ testUsingActiveX: function(version) {
+ var objectName = 'JavaWebStart.isInstalled.' + version + '.0';
+
+ if (!ActiveXObject) {
+ if (deployJava.debug) {
+ alert ('Browser claims to be IE, but no ActiveXObject object?');
+ }
+ return false;
+ }
+
+ try {
+ return (new ActiveXObject(objectName) != null);
+ } catch (exception) {
+ return false;
+ }
+ },
+
+
+ testForMSVM: function() {
+ var clsid = '{08B0E5C0-4FCB-11CF-AAA5-00401C608500}';
+
+ if (typeof oClientCaps != 'undefined') {
+ var v = oClientCaps.getComponentVersion(clsid, "ComponentID");
+ if ((v == '') || (v == '5,0,5000,0')) {
+ return false;
+ } else {
+ return true;
+ }
+ } else {
+ return false;
+ }
+ },
+
+
+ testUsingMimeTypes: function(version) {
+ if (!navigator.mimeTypes) {
+ if (deployJava.debug) {
+ alert ('Browser claims to be Netscape family, but no mimeTypes[] array?');
+ }
+ return false;
+ }
+
+ for (var i = 0; i < navigator.mimeTypes.length; ++i) {
+ s = navigator.mimeTypes[i].type;
+ var m = s.match(/^application\/x-java-applet\x3Bversion=(1\.8|1\.7|1\.6|1\.5|1\.4\.2)$/);
+ if (m != null) {
+ if (deployJava.compareVersions(m[1], version)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ },
+
+
+ testUsingPluginsArray: function(version) {
+ if ((!navigator.plugins) || (!navigator.plugins.length)) {
+ if (deployJava.debug) {
+ alert ('Browser claims to be Safari, but no plugins[] array?');
+ }
+ return false;
+ }
+
+ for (var i = 0; i < navigator.plugins.length; ++i) {
+ s = navigator.plugins[i].description;
+
+ if (s.search(/^Java Switchable Plug-in/) != -1) {
+ return true;
+ }
+
+ m = s.match(/^Java (1\.4\.2|1\.5|1\.6|1\.7).* Plug-in/);
+ if (m != null) {
+ if (deployJava.compareVersions(m[1], version)) return true;
+ }
+ }
+ return false;
+ },
+
+ IEInstall: function() {
+
+ location.href = deployJava.getJavaURL +
+ ((deployJava.returnPage != null) ?
+ ('&returnPage=' + deployJava.returnPage) : '') +
+ ((deployJava.locale != null) ?
+ ('&locale=' + deployJava.locale) : '') +
+ ((deployJava.brand != null) ? ('&brand=' + deployJava.brand) : '') +
+ ((deployJava.installType != null) ?
+ ('&type=' + deployJava.installType) : '');
+
+ // should not actually get here
+ return false;
+ },
+
+ done: function (name, result) {
+ },
+
+ FFInstall: function() {
+
+ location.href = deployJava.getJavaURL +
+ ((deployJava.returnPage != null) ?
+ ('&returnPage=' + deployJava.returnPage) : '') +
+ ((deployJava.locale != null) ?
+ ('&locale=' + deployJava.locale) : '') +
+ ((deployJava.brand != null) ? ('&brand=' + deployJava.brand) : '') +
+ ((deployJava.installType != null) ?
+ ('&type=' + deployJava.installType) : '');
+
+ // should not actually get here
+ return false;
+ },
+
+ // return true if 'installed' (considered as a JRE version string) is
+ // greater than or equal to 'required' (again, a JRE version string).
+ compareVersions: function(installed, required) {
+
+ var a = installed.split('.');
+ var b = required.split('.');
+
+ for (var i = 0; i < a.length; ++i) {
+ a[i] = Number(a[i]);
+ }
+ for (var i = 0; i < b.length; ++i) {
+ b[i] = Number(b[i]);
+ }
+ if (a.length == 2) {
+ a[2] = 0;
+ }
+
+ if (a[0] > b[0]) return true;
+ if (a[0] < b[0]) return false;
+
+ if (a[1] > b[1]) return true;
+ if (a[1] < b[1]) return false;
+
+ if (a[2] > b[2]) return true;
+ if (a[2] < b[2]) return false;
+
+ return true;
+ },
+
+
+ enableAlerts: function() {
+ deployJava.debug = true;
+ },
+
+ poll: function() {
+
+ deployJava.refresh();
+ var postInstallJREList = deployJava.getJREs();
+
+ if ((deployJava.preInstallJREList.length == 0) &&
+ (postInstallJREList.length != 0)) {
+ clearInterval(deployJava.myInterval);
+ if (deployJava.returnPage != null) {
+ location.href = deployJava.returnPage;
+ };
+ }
+
+ if ((deployJava.preInstallJREList.length != 0) &&
+ (postInstallJREList.length != 0) &&
+ (deployJava.preInstallJREList[0] != postInstallJREList[0])) {
+ clearInterval(deployJava.myInterval);
+ if (deployJava.returnPage != null) {
+ location.href = deployJava.returnPage;
+ }
+ }
+
+ },
+
+ writePluginTag: function() {
+ var browser = deployJava.getBrowser();
+ if (browser == 'MSIE') {
+ document.write('<' +
+ 'object classid="clsid:CAFEEFAC-DEC7-0000-0000-ABCDEFFEDCBA" ' +
+ 'id="deployJavaPlugin" width="0" height="0">' +
+ '<' + '/' + 'object' + '>');
+ } else if (browser == 'Netscape Family') {
+ if (navigator.mimeTypes != null) for (var i=0;
+ i < navigator.mimeTypes.length; i++) {
+ if (navigator.mimeTypes[i].type == deployJava.mimeType) {
+ if (navigator.mimeTypes[i].enabledPlugin) {
+ document.write('<' +
+ 'embed id="deployJavaPlugin" type="' +
+ deployJava.mimeType + '" hidden="true" />');
+ }
+ }
+ }
+ }
+ },
+
+ refresh: function() {
+ navigator.plugins.refresh(false);
+
+ var browser = deployJava.getBrowser();
+ if (browser == 'Netscape Family') {
+ var plugin = document.getElementById('deployJavaPlugin');
+ // only do this again if no plugin
+ if (plugin == null) {
+ if (navigator.mimeTypes != null) for (var i=0;
+ i < navigator.mimeTypes.length; i++) {
+ if (navigator.mimeTypes[i].type == deployJava.mimeType) {
+ if (navigator.mimeTypes[i].enabledPlugin) {
+ document.write('<' +
+ 'embed id="deployJavaPlugin" type="' +
+ deployJava.mimeType + '" hidden="true" />');
+ }
+ }
+ }
+ }
+ }
+ },
+
+ do_initialize: function() {
+ deployJava.writePluginTag();
+ if (deployJava.locale == null) {
+ var loc = null;
+
+ if (loc == null) try {
+ loc = navigator.userLanguage;
+ } catch (err) { }
+
+ if (loc == null) try {
+ loc = navigator.systemLanguage;
+ } catch (err) { }
+
+ if (loc == null) try {
+ loc = navigator.language;
+ } catch (err) { }
+
+ if (loc != null) {
+ loc.replace("-","_")
+ deployJava.locale = loc;
+ }
+ }
+ }
+
+};
+deployJava.do_initialize();
+