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/,\