diff --git a/zkwebui/.classpath b/zkwebui/.classpath
index d943a9229d..3c1eb99e2e 100644
--- a/zkwebui/.classpath
+++ b/zkwebui/.classpath
@@ -34,7 +34,7 @@
-
+
diff --git a/zkwebui/META-INF/MANIFEST.MF b/zkwebui/META-INF/MANIFEST.MF
index 43b227b48c..527b32fba9 100644
--- a/zkwebui/META-INF/MANIFEST.MF
+++ b/zkwebui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: org.adempiere.webui
Bundle-SymbolicName: org.adempiere.webui;singleton:=true
-Bundle-Version: 0.0.0.2
+Bundle-Version: 1.0.0.qualifier
Web-ContextPath: webui
Bundle-ClassPath: WEB-INF/classes/,
WEB-INF/lib/zk.jar,
@@ -365,15 +365,13 @@ Export-Package: junit.extensions,
web.zul.img.vd,
web.zul.img.wnd
Eclipse-RegisterBuddy: org.adempiere.tools
-Require-Bundle: org.eclipse.osgi.services;bundle-version="3.1.100",
- org.eclipse.core.runtime;bundle-version="3.5.0",
- org.apache.xerces;bundle-version="2.9.0",
+Require-Bundle: org.apache.xerces;bundle-version="2.9.0",
org.apache.xml.serializer;bundle-version="2.7.1",
com.springsource.javax.servlet;bundle-version="2.5.0",
org.adempiere.JasperReports;bundle-version="1.0.0",
- org.adempiere.client;bundle-version="0.0.0",
- org.adempiere.base;bundle-version="0.0.0",
- org.adempiere.tools;bundle-version="0.0.0",
+ org.adempiere.client;bundle-version="1.0.0",
+ org.adempiere.base;bundle-version="1.0.0",
+ org.adempiere.tools;bundle-version="1.0.0",
org.adempiere.JasperReportsTools;bundle-version="1.0.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Eclipse-ExtensibleAPI: true
diff --git a/zkwebui/WEB-INF/src/org/adempiere/webui/Activator.java b/zkwebui/WEB-INF/src/org/adempiere/webui/Activator.java
deleted file mode 100644
index 4d37e1e5de..0000000000
--- a/zkwebui/WEB-INF/src/org/adempiere/webui/Activator.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package org.adempiere.webui;
-
-import java.util.Arrays;
-import java.util.Dictionary;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.List;
-
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletException;
-
-import org.adempiere.webui.session.WebUIServlet;
-import org.eclipse.core.runtime.Plugin;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.http.HttpContext;
-import org.osgi.service.http.HttpService;
-import org.osgi.util.tracker.ServiceTracker;
-import org.zkoss.zk.au.http.DHtmlUpdateServlet;
-
-public class Activator extends Plugin {
-
- private ServiceTracker httpServiceTracker;
-
- public void start(BundleContext context) throws Exception {
- System.out.println("Starting WebUI");
- httpServiceTracker = new HttpServiceTracker(context);
- httpServiceTracker.open();
- }
-
- public void stop(BundleContext context) throws Exception {
- System.out.println("Stopping WebUI");
- httpServiceTracker.close();
- httpServiceTracker = null;
- }
-
- private class HttpServiceTracker extends ServiceTracker {
- private BundleContext context;
- public HttpServiceTracker(BundleContext context) {
- super(context, HttpService.class.getName(), null);
- this.context = context;
- }
-
- public Object addingService(ServiceReference reference) {
- HttpService httpService = (HttpService) context.getService(reference);
- System.out.println("Adding zkLoader: "+httpService);
- try {
-// MappingServlet mapping = new MappingServlet();
-
- Hashtable params = new Hashtable();
- params.put("update-uri", "/zkau");
- HttpContext ctx = httpService.createDefaultHttpContext();
- WebUIServlet webuiServlet = new WebUIServlet();
- httpService.registerServlet("/*.zul", webuiServlet, params , ctx); //$NON-NLS-1$
- DelegatingServlet updateServlet = new DelegatingServlet(new DHtmlUpdateServlet()) {
- private ServletConfig cfg;
- @Override
- public void init(ServletConfig config)
- throws ServletException {
- super.init(config);
- cfg = config;
- }
- @Override
- public ServletConfig getServletConfig() {
- return cfg;
- }
- };
- httpService.registerServlet("/zkau", updateServlet, params , ctx); //$NON-NLS-1$
-// httpService.registerServlet("/*.zhtml", webuiServlet, params , ctx); //$NON-NLS-1$
- httpService.registerResources("/", "/WebContent", ctx);
- httpService.registerResources("/WEB-INF/zk.xml", "/zk.xml", ctx);
-
- System.out.println("zkLoader added: " + httpService.toString());
- } catch (Exception e) {
- e.printStackTrace();
- }
- return httpService;
- }
-
- public void removedService(ServiceReference reference, Object service) {
- HttpService httpService = (HttpService) service;
- httpService.unregister("/"); //$NON-NLS-1$
- System.out.println("zkLoader removedss: " + httpService.toString());
- super.removedService(reference, service);
- }
- }
-}
diff --git a/zkwebui/WEB-INF/src/org/adempiere/webui/util/BrowserToken.java b/zkwebui/WEB-INF/src/org/adempiere/webui/util/BrowserToken.java
index 830c0f6204..0bded89acc 100644
--- a/zkwebui/WEB-INF/src/org/adempiere/webui/util/BrowserToken.java
+++ b/zkwebui/WEB-INF/src/org/adempiere/webui/util/BrowserToken.java
@@ -19,6 +19,7 @@ import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.logging.Level;
+import org.apache.commons.codec.binary.Base64;
import org.compiere.Adempiere;
import org.compiere.model.MSession;
import org.compiere.model.MSystem;
@@ -27,8 +28,6 @@ import org.compiere.util.CLogger;
import org.zkoss.zk.au.out.AuScript;
import org.zkoss.zk.ui.util.Clients;
-import sun.misc.BASE64Encoder;
-
/**
* class to manage browser token for auto authentication
* @author hengsin
@@ -37,9 +36,9 @@ import sun.misc.BASE64Encoder;
public final class BrowserToken {
private final static CLogger log = CLogger.getCLogger(BrowserToken.class);
-
+
private BrowserToken() {}
-
+
public final static String REMEMBER_ME = "Login.RememberMe";
/**
* save session and user as client side token for future auto login
@@ -47,20 +46,20 @@ public final class BrowserToken {
* @param user
*/
public static void save(MSession session, MUser user) {
- try
+ try
{
String home = getHomeToken();
String hash = getPasswordHash(session, user);
String script = "adempiere.saveUserToken('" + home + "', '" + hash + "', '" + session.getAD_Session_ID() + "');";
AuScript aus = new AuScript(null, script);
Clients.response("saveUserToken", aus);
- }
+ }
catch (Exception e)
{
log.log(Level.WARNING, e.getLocalizedMessage(), e);
}
}
-
+
/**
* remove client side token for auto login
*/
@@ -93,7 +92,7 @@ public final class BrowserToken {
log.log(Level.WARNING, e.getLocalizedMessage(), e);
}
}
-
+
/**
* validate a stored client side token is valid
* @param session
@@ -102,7 +101,7 @@ public final class BrowserToken {
* @return true if token is valid
*/
public static boolean validateToken(MSession session, MUser user, String token) {
- try
+ try
{
String hash = getPasswordHash(session, user);
return hash.equals(token);
@@ -110,21 +109,21 @@ public final class BrowserToken {
catch (Exception e)
{
log.log(Level.WARNING, e.getLocalizedMessage(), e);
- }
+ }
return false;
}
-
+
private static String getHomeToken() throws UnsupportedEncodingException {
- String home = Adempiere.getAdempiereHome();
- BASE64Encoder encoder = new BASE64Encoder();
- home = encoder.encode(home.getBytes("UTF-8"));
+ String home = Adempiere.getAdempiereHome();
+ Base64 encoder = new Base64();
+ home = new String(encoder.encode(home.getBytes("UTF-8")), "UTF-8");
home = URLEncoder.encode(home, "UTF-8");
return home;
}
-
+
private static String getPasswordHash(MSession session, MUser user) throws UnsupportedEncodingException, NoSuchAlgorithmException {
MessageDigest digest = MessageDigest.getInstance("SHA-512");
- BASE64Encoder encoder = new BASE64Encoder();
+ Base64 encoder = new Base64();
digest.reset();
digest.update(session.getWebSession().getBytes("UTF-8"));
String password = null;
@@ -133,9 +132,9 @@ public final class BrowserToken {
else
password = new String("");
byte[] input = digest.digest(password.getBytes("UTF-8"));
- String hash = encoder.encode(input);
+ String hash = new String(encoder.encode(input), "UTF-8");
hash = URLEncoder.encode(hash, "UTF-8");
-
+
return hash;
}
}
diff --git a/zkwebui/build.properties b/zkwebui/build.properties
index 139c16b00e..35ebda241c 100644
--- a/zkwebui/build.properties
+++ b/zkwebui/build.properties
@@ -1,3 +1,5 @@
+source.. = WEB-INF/src/
+output.. = WEB-INF/classes/
bin.includes = META-INF/,\
WEB-INF/,\
css/,\