diff --git a/.classpath b/.classpath index 53d7722..53930f2 100644 --- a/.classpath +++ b/.classpath @@ -7,8 +7,6 @@ - - diff --git a/lib/commons-fileupload-1.2.1.jar b/lib/commons-fileupload-1.2.1.jar deleted file mode 100644 index aa209b3..0000000 Binary files a/lib/commons-fileupload-1.2.1.jar and /dev/null differ diff --git a/lib/servlet-api.jar b/lib/servlet-api.jar deleted file mode 100644 index dd326d3..0000000 Binary files a/lib/servlet-api.jar and /dev/null differ diff --git a/src/fr/devinsy/kiss4web/CookieHelper.java b/src/fr/devinsy/kiss4web/CookieHelper.java deleted file mode 100644 index 49328bb..0000000 --- a/src/fr/devinsy/kiss4web/CookieHelper.java +++ /dev/null @@ -1,176 +0,0 @@ -package fr.devinsy.kiss4web; - -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - - -/** - * - */ -public class CookieHelper -{ - static protected org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (CookieHelper.class); - - /** - * - */ - static public Cookie buildCookie (String name, String value, int duration, boolean isSecure) - { - Cookie result; - - result = new Cookie (name, value); - result.setMaxAge (duration); - result.setPath ("/"); - result.setSecure (isSecure); - - // - return (result); - } - - - /** - * - */ - static public Cookie buildCookie (String name, String value, int duration) - { - Cookie result; - - result = buildCookie(name, value, duration, false); - - // - return (result); - } - - - /** - * - */ - static public Cookie getCookie (Cookie[] cookies, String key) - { - Cookie result = null; - - if (cookies == null) - { - result = null; - } - else - { - boolean ended = false; - int cookieCounter = 0; - while (!ended) - { - if (cookieCounter < cookies.length) - { - if (key.equals (cookies[cookieCounter].getName ())) - { - ended = true; - result = cookies[cookieCounter]; - } - else - { - cookieCounter += 1; - } - } - else - { - ended = true; - result = null; - } - } - } - - // - return (result); - } - - - /** - * - */ - static public Cookie getCookie (HttpServletRequest request, String key) - { - Cookie result = null; - - result = getCookie(request.getCookies (), key); - - // - return(result); - } - - - /** - * - */ - static public Object getCookieValue (Cookie[] cookies, String key) - { - Object result; - - Cookie cookie = getCookie(cookies, key); - - if (cookie == null) - { - result = null; - } - else - { - result = cookie.getValue(); - } - - // - return(result); - } - - - /** - * - */ - static public Object getCookieValue (HttpServletRequest request, String key) - { - Object result; - - result = getCookieValue (request.getCookies (), key); - - // - return(result); - } - - - /** - * - */ - static public boolean exists(HttpServletRequest request, String key) - { - boolean result; - - if (getCookieValue(request, key) == null) - { - result = false; - } - else - { - result = true; - } - - // - return(result); - } - - - /** - * - */ - static public void set (HttpServletResponse response, String name, String value, int duration) - { - response.addCookie (buildCookie(name, value, duration)); - } - - - /** - * - */ - static public void reset (HttpServletResponse response, String key) - { - response.addCookie(buildCookie(key, "", 0)); - } -} \ No newline at end of file diff --git a/src/fr/devinsy/kiss4web/Page.java b/src/fr/devinsy/kiss4web/Page.java deleted file mode 100644 index 528b1a8..0000000 --- a/src/fr/devinsy/kiss4web/Page.java +++ /dev/null @@ -1,18 +0,0 @@ -package fr.devinsy.kiss4web; -import java.io.*; -import javax.servlet.*; -import javax.servlet.http.*; - - - -/** - * - */ -public interface Page -{ - /** - * - */ - public void doIt (HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException; -} diff --git a/src/fr/devinsy/kiss4web/PageManager.java b/src/fr/devinsy/kiss4web/PageManager.java deleted file mode 100644 index 6824fd4..0000000 --- a/src/fr/devinsy/kiss4web/PageManager.java +++ /dev/null @@ -1,399 +0,0 @@ -package fr.devinsy.kiss4web; - -import java.io.*; -import javax.servlet.*; -import javax.servlet.http.*; -import fr.devinsy.kiss4web.security.*; - -/** - * - */ -public class PageManager extends HttpServlet -{ - private static final long serialVersionUID = 1983715791417570578L; - private static PageManager instance = null; - protected SecurityAgent securityAgent; - - static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (PageManager.class); - - /** - * - */ - public void init () throws ServletException - { - // - instance = this; - - try - { - this.securityAgent = new SecurityAgent (getInitParameter ("securityDataPath")); - } - catch (Exception exception) - { - throw new ServletException("SecurityAgent initialization failed.", exception); - } - } - - /** - * - */ - public static PageManager instance () - { - return instance; - } - - /** - * - */ - static public String buildClassName (String pathInfo) - { - String result; - result = null; - - if ( pathInfo.equals ("/")) - { - result = "Accueil"; - } - else - { - String[] tokens = pathInfo.split ("/"); - StringBuffer name = new StringBuffer (); - - for (int tokenCounter = 1; tokenCounter < tokens.length - 1; tokenCounter++) - { - name.append (tokens[tokenCounter]); - name.append ('.'); - } - - if (pathInfo.endsWith ("/")) - { - name.append (tokens[tokens.length - 1]); - name.append ('.'); - } - - logger.info ("==>[" + tokens[tokens.length - 1] + "]"); - name.append (formatClassName (tokens[tokens.length - 1])); - - result = name.toString (); - } - - // - return (result); - } - - /** - * - */ - static public String buildClassName2 (String pathInfo) - { - String result; - - if (pathInfo.endsWith (".xhtml")) - { - char[] source = pathInfo.toCharArray (); - - StringBuffer out = new StringBuffer (); - for (char c : source) - { - out.append ("[" + c + "]"); - } - logger.debug (out.toString ()); - - char[] target = new char[source.length - 7]; - int lastStartToken = 0; - for (int nChar = 1; nChar < source.length - 5; nChar++) - { - char charSource = source[nChar]; - switch (charSource) - { - case '/': - target[nChar - 1] = '.'; - lastStartToken = nChar; - break; - - case '.': - target[lastStartToken] = Character.toUpperCase (target[lastStartToken]); - break; - - default: - target[nChar - 1] = source[nChar]; - } - } - - out = new StringBuffer (); - for (char c : target) - { - out.append ("[" + c + "]"); - } - logger.debug (out.toString ()); - - result = new String (target); - } - else if (pathInfo.equals ("/")) - { - result = "Accueil"; - } - else if (pathInfo.endsWith ("/")) - { - char[] source = pathInfo.toCharArray (); - - StringBuffer out = new StringBuffer (); - for (char c : source) - { - out.append ("[" + c + "]"); - } - logger.debug (out.toString ()); - - char[] target = new char[source.length - 2]; - int lastStartToken = 0; - for (int nChar = 1; nChar < source.length - 1; nChar++) - { - char charSource = source[nChar]; - switch (charSource) - { - case '/': - target[nChar - 1] = '.'; - lastStartToken = nChar + 1; - break; - - default: - target[nChar - 1] = source[nChar]; - } - } - - char[] targetPlus = new char [source.length - lastStartToken]; - targetPlus[0] = '.'; - targetPlus[1] = Character.toUpperCase (source[lastStartToken]); - int index = 2; - for (int nChar = lastStartToken + 1; nChar < source.length - 1; nChar++) - { - targetPlus[index] = source[nChar]; - index += 1; - } - - out = new StringBuffer (); - for (char c : target) - { - out.append ("[" + c + "]"); - } - logger.debug (out.toString ()); - out = new StringBuffer (); - for (char c : targetPlus) - { - out.append ("[" + c + "]"); - } - logger.debug (out.toString ()); - - result = new String (target) + new String (targetPlus); - } - else - { - logger.debug ("unknow case"); - result = null; - } - - // - return (result); - } - - - /** - */ - public Page instanciatePage (String className) - { - Page result; - - Class pageClass = null; - try - { - pageClass = (Class) Class.forName (className); - } - catch (java.lang.ClassNotFoundException exception) - { - result = null; - } - - logger.info ("class=" + pageClass); - - if (pageClass == null) - { - result = null; - logger.error ("Unknow page: (" + className + ")"); - } - else - { - try - { - result = pageClass.newInstance (); - } - catch (java.lang.InstantiationException exception) - { - logger.error ("Can't instanciate page (" + className + ")"); - result = null; - } - catch (java.lang.IllegalAccessException exception) - { - logger.error ("(2) Can't instanciate page (" + className + ")"); - result = null; - } - } - - // - return (result); - } - - /** - * - */ - public void doGet (HttpServletRequest request, HttpServletResponse response) - throws IOException, ServletException - { - logger.info ("=================================================="); - logger.info ("getContextPath=[" + request.getContextPath () + "]"); - logger.info ("getPathInfo=[" + request.getPathInfo () + "]"); - logger.info ("getPathTranslated=[" + request.getPathTranslated () + "]"); - logger.info ("getQueryString=[" + request.getQueryString () + "]"); - logger.info ("getRequestURI=[" + request.getRequestURI () + "]"); - logger.info ("getRequestURL=[" + request.getRequestURL () + "]"); - logger.info ("getServletPath=[" + request.getServletPath () + "]"); - - String className = buildClassName (request.getPathInfo ()); - logger.info ("className=" + className); - - Page page = this.instanciatePage ("site." + className); - - if (page == null) - { - response.setContentType ("text/html"); - PrintWriter out = response.getWriter(); - - out.println ("Unknow page."); - } - else - { - HttpSession session = request.getSession (false); - String login; - if (session == null) - { - login = null; - } - else - { - login = (String) session.getAttribute ("login"); - } - - if (this.securityAgent.checkPermission (request.getPathInfo (), login)) - { - page.doIt (request, response); - logger.info ("securityAgent say 'permission OK': (" + login + ", " + request.getPathInfo () + ")"); - } - else - { - logger.info ("securityAgent say 'permission KO': (" + login + ", " + request.getPathInfo () + ")"); - - if (login == null) - { - response.sendRedirect ("/gestion/login.xhtml"); - } - else - { - response.setContentType ("text/html"); - PrintWriter out = response.getWriter(); - - out.println (""); - out.println ("Permission denied."); - out.println ("
"); - out.println (" "); - out.println ("
"); - out.println (""); - } - } - } - } - - - /** - * - */ - public void doPost (HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException - { - doGet (request, response); - } - - - /** - * - */ - static public String formatClassName (String name) - { - String result; - - result = null; - - String[] splittedLastToken = name.split ("\\."); - String last = splittedLastToken[0]; - //logger.info ("last=" + last); - - String[] tokens = last.split ("_"); - StringBuffer all = new StringBuffer (); - for (String token : tokens) - { - //logger.info ("tok=" + token); - - all.append (Character.toUpperCase (token.charAt (0))); - all.append (token.substring (1)); - } - - result = all.toString (); - - // - return (result); - } - - - /** - * - */ - public SecurityAgent securityAgent () - { - SecurityAgent result; - - result = this.securityAgent; - - // - return (result); - } - - - /** - * - */ - static public User getUserFromSession (HttpServletRequest request) - { - User result; - - if (request == null) - { - result = null; - } - else - { - HttpSession session = request.getSession (false); - - String login; - if (session == null) - { - result = null; - } - else - { - login = (String) session.getAttribute ("login"); - result = PageManager.instance ().securityAgent ().users ().getByLogin (login); - } - } - - // - return (result); - } -} diff --git a/src/fr/devinsy/kiss4web/ServletDispatcher.java b/src/fr/devinsy/kiss4web/ServletDispatcher.java deleted file mode 100755 index 8bb54fa..0000000 --- a/src/fr/devinsy/kiss4web/ServletDispatcher.java +++ /dev/null @@ -1,71 +0,0 @@ -/** - * @author Christian Momon, June 2008. - * This file is free software under the terms of the GNU Library General Public License - * as published by the Free Software Foundation version 2 or any later version. - */ - -package fr.devinsy.kiss4web; - -import java.io.*; -import javax.servlet.*; -import javax.servlet.http.*; - - - -/** - * - */ -public class ServletDispatcher extends SimpleServletDispatcher -{ - private static final long serialVersionUID = -3471226305721330069L; - protected org.apache.log4j.Logger logger; - //protected Servlets servlets; - - - /** - * - */ - public void init () throws ServletException - { - super.init(); - this.logger = org.apache.log4j.Logger.getLogger (this.getClass()); - //this.servlets = new Servlets(); - } - - - /** - * - */ - public void doIt (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException - { - logger.info ("=================================================="); - logger.info ("getContextPath=[" + request.getContextPath () + "]"); - logger.info ("getPathInfo=[" + request.getPathInfo () + "]"); - logger.info ("getPathTranslated=[" + request.getPathTranslated () + "]"); - logger.info ("getQueryString=[" + request.getQueryString () + "]"); - logger.info ("getRequestURI=[" + request.getRequestURI () + "]"); - logger.info ("getRequestURL=[" + request.getRequestURL () + "]"); - logger.info ("getServletPath=[" + request.getServletPath () + "]"); - - String className = pathInfoToClassName (request.getPathInfo ()); - logger.info ("className=" + className); - - HttpServlet servlet = instanciateServlet (className); - - if (servlet == null) - { - response.setContentType ("text/html"); - PrintWriter out = response.getWriter(); - - out.println (""); - out.println ("Unknow page."); - out.println (""); - - out.close(); - } - else - { - servlet.service(request, response); - } - } -} diff --git a/src/fr/devinsy/kiss4web/SimpleServletDispatcher.java b/src/fr/devinsy/kiss4web/SimpleServletDispatcher.java deleted file mode 100755 index c32eb48..0000000 --- a/src/fr/devinsy/kiss4web/SimpleServletDispatcher.java +++ /dev/null @@ -1,666 +0,0 @@ -/** - * @author Christian Momon, June 2008. This file is free software under the - * terms of the GNU Library General Public License as published by the - * Free Software Foundation version 2 or any later version. - */ - -package fr.devinsy.kiss4web; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.servlet.ServletException; -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import fr.devinsy.util.StringList; - -/** - * - */ -public class SimpleServletDispatcher extends HttpServlet -{ - private static final long serialVersionUID = -3471226305721330069L; - static protected org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(ServletDispatcher.class); - - static final protected Pattern SHORT_REWRITED_URL_CLASS = Pattern.compile("^([^-]+)-.+\\.xhtml$"); - static final protected Pattern SHORT_REWRITED_URL_PARAMETERS = Pattern.compile("^[^-]+-(.+)\\.xhtml$"); - static final protected Pattern LONG_REWRITED_URL_CLASS = Pattern.compile("^([^-]+)-/.*$"); - // static final protected Pattern LONG_REWRITED_URL_PARAMETERS = - // Pattern.compile("^.+-/(.)+*$"); - static final protected Pattern REWRITE_PARAMETER = Pattern.compile("[^%\\w\\d]"); - - protected String webclassesRootPath; - - /** - * "Code can be shortest, speedest and memory smallest, but not the three in same time, only two" - * , unknow citation. - * - * Note: characters array avalaible here - * http://fr.wikipedia.org/wiki/Table_des_caract - * %C3%A8res_Unicode_%280000-0FFF%29 - */ - static protected char NONE = (char) 0; - - static protected int[] rewritingParameterMapping = { - /* 00 */NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, - /* 10 */NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, - /* 20 */'-', NONE, NONE, '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', - /* 30 */'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '-', '-', '-', '-', '-', - /* 40 */'\u0040', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', - /* 50 */'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '-', '-', '-', '-', '-', - /* 60 */'-', '\u0061', '\u0062', '\u0063', '\u0064', '\u0065', '\u0066', '\u0067', '\u0068', '\u0069', '\u006A', '\u006B', '\u006C', '\u006D', '\u006E', - '\u006F', - /* 70 */'\u0070', '\u0071', '\u0072', '\u0073', '\u0074', '\u0075', '\u0076', '\u0077', '\u0078', '\u0079', '\u007A', '\u007B', '\u007C', '\u007D', - '-', '-', - /* 80 */NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, - /* 90 */NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, NONE, - /* A0 */'\u00A0', '\u00A1', '\u00A2', '\u00A3', '\u00A4', '\u00A5', '\u00A6', '\u00A7', '\u00A8', '\u00A9', '\u00AA', '\u00AB', '\u00AC', '\u00AD', - '\u00AE', '\u00AF', - /* B0 */'-', '\u00B1', '\u00B2', '\u00B3', '\u00B4', '\u00B5', '\u00B6', '\u00B7', '\u00B8', '\u00B9', '\u00BA', '\u00BB', '\u00BC', '\u00BD', - '\u00BE', '\u00BF', - /* C0 */'a', 'a', 'a', 'a', 'a', 'a', 'a', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', - /* D0 */'\u00D0', '\u00D1', 'o', 'o', 'o', 'o', 'o', 'o', '\u00D8', 'u', 'u', 'u', 'u', 'y', '\u00DE', '\u00DF', - /* E0 */'a', 'a', 'a', 'a', 'a', 'a', 'a', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', - /* F0 */'o', 'n', 'o', 'o', 'o', 'o', 'o', '\u00F7', '-', 'u', 'u', 'u', 'u', 'y', '-', 'y' }; - - /** - * - */ - @Override - public void doGet(final HttpServletRequest request, final HttpServletResponse response) throws IOException, ServletException - { - doIt(request, response); - } - - /** - * - * - */ - public void doIt(final HttpServletRequest request, final HttpServletResponse response) throws IOException, ServletException - { - logger.info("=================================================="); - logger.info("getContextPath=[" + request.getContextPath() + "]"); - logger.info("getPathInfo=[" + request.getPathInfo() + "]"); - logger.info("getPathTranslated=[" + request.getPathTranslated() + "]"); - logger.info("getQueryString=[" + request.getQueryString() + "]"); - logger.info("getRequestURI=[" + request.getRequestURI() + "]"); - logger.info("getRequestURL=[" + request.getRequestURL() + "]"); - logger.info("getServletPath=[" + request.getServletPath() + "]"); - - // - /* - * In past, possibility to use the servlet path was enable. It is too - * complexe, not kiss mind. String path; if (request.getPathInfo() == - * null) { // web.xml url-pattern= *.xhtml path = - * request.getServletPath(); } else { // web.xml url-pattern = /* path = - * request.getPathInfo(); } - */ - // String path = request.getRequestURI(); - String path = request.getPathInfo(); - - if ((!path.endsWith("/")) && (!path.endsWith(".xhtml")) && (!path.contains("-/"))) - { - // path = getServletContext().getRealPath("/") + - // request.getRequestURI(); - path = getServletContext().getRealPath("/") + request.getPathInfo(); - - returnInlineFile(response, new File(path), getServletContext().getMimeType(path)); - logger.info("File returned directly [" + path + "] with mimetype [" + getServletContext().getMimeType(path) + "]."); - } - else - { - String className = pathInfoToClassName(path, this.webclassesRootPath); - logger.info("className=[" + className + "]"); - - HttpServlet servlet = instanciateServlet(className); - - // servlet.getServletContext().setAttribute(arg0, arg1); - - if (servlet == null) - { - response.setContentType("text/html"); - PrintWriter out = response.getWriter(); - - out.println(""); - out.println("Unknow page."); - out.println(""); - - out.close(); - } - else if (isAuthorized(request, response)) - { - servlet.init(this.getServletConfig()); - servlet.service(request, response); - } - else - { - /* - * TODO // response.setContentType ("text/html"); PrintWriter - * out = response.getWriter(); - * - * out.println (""); out.println - * ("Not authorized page."); out.println (""); - */ - } - } - } - - /** - * - */ - @Override - public void doPost(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException - { - doIt(request, response); - } - - /** - * - */ - @Override - public void init() throws ServletException - { - super.init(); - this.webclassesRootPath = getInitParameter("webClassesRootPath"); - - // Set logger. - String logFilepathname = getInitParameter("log4j-init-file"); - if (logFilepathname != null) - { - try - { - System.out.println("Log configuration found (" + logFilepathname + "), will use it."); - org.apache.log4j.PropertyConfigurator.configure(getServletContext().getRealPath("/") + logFilepathname); - } - catch (Exception exception) - { - System.out.println("Log configuration FILE NOT FOUND (" + logFilepathname + "), use of the basic configurator."); - org.apache.log4j.BasicConfigurator.configure(); - } - - logger = org.apache.log4j.Logger.getLogger(this.getClass()); - logger.info("Log initialization done."); - } - } - - /** - * - */ - public boolean isAuthorized(final HttpServletRequest request, final HttpServletResponse response) - { - boolean result; - - result = true; - - // - return (result); - } - - /** - * - */ - static public HttpServlet instanciateServlet(final String className) - { - HttpServlet result; - - Class servletClass = null; - try - { - servletClass = (Class) Class.forName(className); - } - catch (java.lang.ClassNotFoundException exception) - { - result = null; - } - - logger.info("class=" + servletClass); - - if (servletClass == null) - { - result = null; - logger.error("Unknow page: (" + className + ")"); - } - else - { - try - { - result = servletClass.newInstance(); - } - catch (java.lang.InstantiationException exception) - { - logger.error("Can't instanciate servlet (" + className + ")"); - result = null; - } - catch (java.lang.IllegalAccessException exception) - { - logger.error("(2) Can't instanciate servlet (" + className + ")"); - result = null; - } - } - - // - return (result); - } - - /** - * Extract values from a path. Example: "/article-/123/doors/open.xhtml" => - * "123", "doors" and "open". - */ - static public String[] longRewritedUrlParameters(final String path) - { - String[] result; - - result = path.substring(path.indexOf("-/") + 2).split("/"); - - // - return (result); - } - - /** - * Convert a path in a class name, using easy conventions. - * - * "/" => "Index_xhtml" "/good/" => "good.Good_xhtml" "/good/morning.xhtml" - * => "good.Morning_xhtml" "/good/morning_girl.xhtml" => - * "good.Morning_girl_xhtml" "/good/morning-123.xhtml" => - * "good.Morning_xhtml" ('123' is detected as a parameter, it will be - * decoded in the class called later). "/good/morning-/12/toto.jpg" => - * "good.Morning" ('12' and 'toto.jpg" are detected as a parameter, they - * will be decoded in the class called later). - */ - static public String pathInfoToClassName(final String pathInfo) - { - String result; - - if ((pathInfo == null) || (pathInfo.length() == 0)) - { - result = null; - } - else - { - if (pathInfo.equals("/")) - { - result = "Index_xhtml"; - } - else - { - int keywordIndex = pathInfo.lastIndexOf("-/"); - - if (keywordIndex != -1) - { - // Long rewrited URL case. - String[] tokens = pathInfo.substring(0, keywordIndex).split("/"); - - StringList name = new StringList(); - // Note: as pathInfo starts always with a '/', the first - // good token index is 1. - for (int tokenCounter = 1; tokenCounter < (tokens.length - 1); tokenCounter++) - { - name.append(tokens[tokenCounter]); - name.append('.'); - } - - String lastToken = tokens[tokens.length - 1]; - name.append(lastToken.substring(0, 1).toUpperCase()).append(lastToken.substring(1).replace('.', '_')); - result = name.toString(); - } - else - { - String[] tokens = pathInfo.split("/"); - - StringList name = new StringList(); - // Note: as pathInfo starts always with a '/', the first - // good token index is 1. - for (int tokenCounter = 1; tokenCounter < (tokens.length - 1); tokenCounter++) - { - name.append(tokens[tokenCounter]); - name.append('.'); - } - - String lastToken = tokens[tokens.length - 1]; - if (pathInfo.endsWith("/")) - { - name.append(lastToken).append(".").append(lastToken.substring(0, 1).toUpperCase()).append(lastToken.substring(1)).append("_xhtml"); - } - else - { - Matcher matcher = SHORT_REWRITED_URL_CLASS.matcher(lastToken); - if (matcher.matches()) - { - // Short rewrited URL case. - // logger.debug("group 1=[" + matcher.group(1) + - // "]"); - lastToken = matcher.group(1) + ".xhtml"; - } - - name.append(lastToken.substring(0, 1).toUpperCase()).append(lastToken.substring(1).replace('.', '_')); - } - - result = name.toString(); - logger.debug("==>[" + tokens[tokens.length - 1] + "]"); - } - } - } - - logger.info("[" + pathInfo + "] => [" + result + "]"); - - // - return (result); - } - - /** - * - */ - static public String pathInfoToClassName(final String pathInfo, final String prefix) - { - String result; - - String className = pathInfoToClassName(pathInfo); - - if (prefix == null) - { - result = className; - } - else if (prefix.endsWith(".")) - { - result = prefix + className; - } - else - { - result = prefix + "." + className; - } - - // - return (result); - } - - /** - * - */ - static public void returnAttachmentFile(final HttpServletResponse response, final File file, final String mimeType) throws IOException - { - returnFile(response, file, mimeType, true); - } - - /** - * - */ - static public void returnFile(final HttpServletResponse response, final File file, final String mimeType, final boolean isAttachment) throws IOException - { - - if ((file == null) || (!file.exists())) - { - response.sendError(HttpServletResponse.SC_NOT_FOUND); - } - else - { - /* - * response.setContentType("application/" + extension); - * response.setContentLength((int) data.length); - * response.setHeader("Content-Disposition" - * ,"attachment; filename=\"" + filename + "\""); - * response.flushBuffer(); - */ - response.reset(); - response.setContentType(mimeType); - response.setContentLength((int) file.length()); - response.setHeader("Content-Disposition", "inline; filename=\"" + file.getName() + "\""); - response.flushBuffer(); - - ServletOutputStream out = response.getOutputStream(); - - FileInputStream in = null; - try - // Only for the in. - { - byte[] buffer = new byte[64 * 1024]; - - in = new FileInputStream(file); - boolean ended = false; - while (!ended) - { - int count = in.read(buffer); - - if (count == -1) - { - ended = true; - } - else - { - out.write(buffer, 0, count); - } - } - out.flush(); - out.close(); - } - catch (IOException exception) - { - response.sendError(HttpServletResponse.SC_PARTIAL_CONTENT); - } - finally - { - if (in != null) - { - in.close(); - } - } - } - } - - /** - * - */ - static public void returnInlineFile(final HttpServletResponse response, final File file, final String mimeType) throws IOException - { - returnFile(response, file, mimeType, false); - } - - /** - * - */ - static public String[] rewritedUrlParameters(final HttpServletRequest request) - { - String[] result; - - result = longRewritedUrlParameters(request.getRequestURI()); - - // - return (result); - } - - /** - * This method gives a way for a long rewriting URL format. Long as in REST. - * - * Sometimes, URL has to be rewrited because we need to put parameter in the - * page name. - * - * Example: "/good/give_file?id=123&filename=foo.jpg" => - * rewriteShorturl("/good/give_file", "123", "foo.jpg"); => - * "/good/give_file-/123/foo.jpg" - * - * Note: "-/" is used to indicate the start of parameters. - * - */ - static public String rewriteLongUrl(final String uri, final String... parameters) - { - String result; - - StringList string = new StringList(); - - string.append(uri).append("-"); - if ((parameters == null) || (parameters.length == 0)) - { - string.append("/"); - } - else - { - for (String parameter : parameters) - { - string.append("/").append(parameter); - } - } - - result = string.toString(); - - // - return (result); - } - - /** - * - * - * @param parameter - * @return - */ - static String rewriteParameter(final String parameter) - { - String result; - - StringBuffer buffer = new StringBuffer(parameter.length()); - - char previousCar = NONE; - for (int charIndex = 0; charIndex < parameter.length(); charIndex++) - { - // logger.info("" + charIndex + " " + parameter.charAt(charIndex) + - // " " + (char) tab[parameter.charAt(charIndex)]); - char car = (char) rewritingParameterMapping[parameter.charAt(charIndex)]; - if (car != NONE) - { - if ((car != '-') || ((car == '-') && (previousCar != '-'))) - { - buffer.append(car); - previousCar = car; - } - } - } - - if (buffer.charAt(buffer.length() - 1) == '-') - { - buffer.setLength(buffer.length() - 1); - } - - result = buffer.toString(); - logger.info("[" + parameter + "] -> [" + result + "]"); - // - return (result); - } - - /** - * This method gives a way for a short rewriting URL format. - * - * Sometimes, URL has to be rewrited because we need to put parameter in the - * page name. - * - * Example: "/good/article.xhtm?id=123&class=today&title=story's about me" - * => rewriteShorturl("/good/article", "xhtml", "123", "Story's aboute me"); - * => "/good/article-123-today-story-s-about-me.xhtml" - */ - static public String rewriteShortUrl(final String uri, final String extension, final String... parameters) - { - String result; - - StringList string = new StringList(); - - string.append(uri); - - for (String parameter : parameters) - { - // Not use of String.replaceAll() method in goal to optimize Pattern - // compile action. - // string.append("-").append(REWRITE_PARAMETER.matcher(parameter.toLowerCase()).replaceAll("-")); - string.append("-").append(rewriteParameter(parameter)); - } - - if ((extension != null) && (extension.length() != 0)) - { - string.append(".").append(extension); - } - - result = string.toString(); - - // - return (result); - } - - /** - * - */ - static public String shortRewritedUrlParameter(final HttpServletRequest request) - { - String result; - - result = shortRewritedUrlParameter(request.getRequestURI()); - - // - return (result); - } - - /** - * Return value of the first parameter. - */ - static public String shortRewritedUrlParameter(final String path) - { - String result; - - String[] results = shortRewritedUrlParameters(path); - - if ((results == null) || (results.length == 0)) - { - result = null; - } - else - { - result = results[0]; - } - - // - return (result); - } - - /** - * - */ - static public String[] shortRewritedUrlParameters(final HttpServletRequest request) - { - String[] result; - - result = shortRewritedUrlParameters(request.getRequestURI()); - - // - return (result); - } - - /** - * Extract value from a path. Example: "/article-123.xhtml" => "123". - */ - static public String[] shortRewritedUrlParameters(final String path) - { - String[] result; - - Matcher matcher = SHORT_REWRITED_URL_PARAMETERS.matcher(path); - if (matcher.matches()) - { - if (matcher.groupCount() != 1) - { - result = null; - } - else - { - result = matcher.group(1).split("-"); - } - } - else - { - result = null; - } - - // - return (result); - } -} diff --git a/src/fr/devinsy/kiss4web/security/Group.java b/src/fr/devinsy/kiss4web/security/Group.java deleted file mode 100644 index 59749e0..0000000 --- a/src/fr/devinsy/kiss4web/security/Group.java +++ /dev/null @@ -1,105 +0,0 @@ -package fr.devinsy.kiss4web.security; - - -import java.util.*; - -/** - * - */ -public class Group -{ - protected String name; - protected Vector members; - - - /** - * - */ - public Group () - { - this.name = null; - this.members = new Vector (); - } - - - /** - * - */ - public void addMember (String login) - { - if ((login != null) && (login.length () != 0)) - { - this.members.add (login); - } - } - - - /** - * - */ - public boolean contains (String name) - { - boolean result = false; - - result = this.members.contains (name); - - // - return (result); - } - - - /** - * - */ - public Vector members () - { - Vector result; - - result = this.members; - - // - return (result); - } - - - /** - * - */ - public String name () - { - String result; - - result = this.name; - - // - return (result); - } - - - /** - * - */ - public Group setName (String name) - { - this.name = name; - - // - return (this); - } - - - /** - * - */ - public String toString () - { - String result; - - result = "|" + this.name + "|" + this.members + "|"; - - // - return (result); - } -} - -// //////////////////////////////////////////////////////////////////////// diff --git a/src/fr/devinsy/kiss4web/security/Groups.java b/src/fr/devinsy/kiss4web/security/Groups.java deleted file mode 100644 index 1cfdfd1..0000000 --- a/src/fr/devinsy/kiss4web/security/Groups.java +++ /dev/null @@ -1,163 +0,0 @@ -package fr.devinsy.kiss4web.security; - - -import java.util.*; - -/** - * - */ -public class Groups extends Vector -{ - private static final long serialVersionUID = 6238581648850758903L; - - /** - * - */ - public Groups () - { - super (); - } - - - /** - * - */ - public Group get (String name) - { - Group result; - - if (name == null) - { - result = null; - } - else - { - result = null; - boolean ended = false; - Iterator iterator = this.iterator (); - while (!ended) - { - if (iterator.hasNext ()) - { - Group group = iterator.next (); - if (group.name ().equals (name)) - { - ended = true; - result = group; - } - } - else - { - ended = true; - result = null; - } - } - } - - // - return (result); - } - - - /* - * - */ - public boolean contains (String name) - { - boolean result; - - if (get (name) == null) - { - result = false; - } - else - { - result = true; - } - - // - return (result); - } - - - /** - * - */ - public Vector getLoginGroups (String login) - { - Vector result; - - result = new Vector (); - Iterator iterator = this.iterator (); - - while (iterator.hasNext ()) - { - Group group = iterator.next (); - - if (group.members ().contains (login)) - { - result.add (group.name ()); - } - } - - // - return (result); - } - - - /** - * - */ - public String getLoginGroupsString (String login) - { - String result; - - Vector groups = getLoginGroups (login); - - StringBuffer string = new StringBuffer (); - - for (String group : groups) - { - if (string.length () == 0) - { - string.append (group); - } - else - { - string.append (","); - string.append (group); - } - } - - result = string.toString (); - - // - return (result); - } - - - /** - * - */ - public String toString () - { - String result; - - StringBuffer out; - out = new StringBuffer (); - - Iterator iterator = this.iterator (); - - while (iterator.hasNext ()) - { - out.append (iterator.next ().toString () + "\n"); - } - - result = out.toString (); - - // - return (result); - } -} - -// //////////////////////////////////////////////////////////////////////// diff --git a/src/fr/devinsy/kiss4web/security/GroupsFileReader.java b/src/fr/devinsy/kiss4web/security/GroupsFileReader.java deleted file mode 100644 index ab44853..0000000 --- a/src/fr/devinsy/kiss4web/security/GroupsFileReader.java +++ /dev/null @@ -1,55 +0,0 @@ -package fr.devinsy.kiss4web.security; - -import java.io.*; -import java.util.*; - - -/** - * - */ -public class GroupsFileReader -{ - /** - * - */ - static public Groups load (String fileName) throws Exception - { - Groups result; - - result = new Groups (); - - Properties properties = new Properties(); - try - { - properties.load (new FileInputStream(fileName)); - - Iterator iterator = properties.keySet ().iterator (); - while (iterator.hasNext ()) - { - String key = (String) iterator.next (); - String valueLine = (String) properties.get (key); - - // - String[] values = valueLine.split (","); - - Group group = new Group (); - group.setName (key); - for (String value : values) - { - group.addMember (value.trim ()); - } - - result.add (group); - } - } - catch (Exception exception) - { - throw new Exception ("can't load (" + fileName + ")", exception); - } - - // - return (result); - } -} - -// //////////////////////////////////////////////////////////////////////// diff --git a/src/fr/devinsy/kiss4web/security/SecurityAgent.java b/src/fr/devinsy/kiss4web/security/SecurityAgent.java deleted file mode 100644 index 72a926b..0000000 --- a/src/fr/devinsy/kiss4web/security/SecurityAgent.java +++ /dev/null @@ -1,151 +0,0 @@ -package fr.devinsy.kiss4web.security; - - -import java.util.*; - - - -/** - * - */ -public class SecurityAgent -{ - protected Users users; - protected Groups groups; - protected Groups permissions; - - - /** - * - */ - public SecurityAgent (String path) throws Exception - { - this.users = UsersFileReader.load (path + "users.conf"); - this.groups = GroupsFileReader.load (path + "groups.conf"); - this.permissions = GroupsFileReader.load (path + "permissions.conf"); - } - - - /** - * - */ - public Groups groups () - { - Groups result; - - result = this.groups; - - // - return (result); - } - - /** - * - */ - public Groups permissions () - { - Groups result; - - result = this.permissions; - - // - return (result); - } - - /** - * - */ - public Users users () - { - Users result; - - result = this.users; - - // - return (result); - } - - /** - * - */ - public boolean authenticate (String login, String password) - { - boolean result; - - User user = this.users.getByLogin (login); - - if (user == null) - { - result = false; - } - else if (user.password ().equals (password)) - { - result = true; - } - else - { - result = false; - } - - // - return (result); - } - - /** - * - */ - public boolean checkPermission (String url, String login) - { - boolean result = false; - - Group permitGroups = this.permissions.get (url); - - if (permitGroups == null) - { - result = false; - } - else - { - // - boolean ended = false; - Iterator iterator = permitGroups.members ().iterator (); - while (!ended) - { - if (!iterator.hasNext ()) - { - ended = true; - result = false; - } - else - { - String groupName = iterator.next (); - if (groupName.equals ("*")) - { - result = true; - ended = true; - } - else - { - Group members = this.groups.get (groupName); - - if (members == null) - { - result = false; - } - else - { - if (members.contains (login)) - { - ended = true; - result = true; - } - } - } - } - } - } - - // - return (result); - } -} diff --git a/src/fr/devinsy/kiss4web/security/User.java b/src/fr/devinsy/kiss4web/security/User.java deleted file mode 100644 index 0054a75..0000000 --- a/src/fr/devinsy/kiss4web/security/User.java +++ /dev/null @@ -1,139 +0,0 @@ -package fr.devinsy.kiss4web.security; - - - - -/** - * - */ -public class User -{ - protected String login; - protected String password; - protected String realName; - protected String email; - - - /** - * - */ - public User () - { - this.login = null; - this.password = null; - this.realName = null; - this.email = null; - } - - - /** - * - */ - public String email () - { - String result; - - result = this.email; - - // - return (result); - } - - /** - * - */ - public String login () - { - String result; - - result = this.login; - - // - return (result); - } - - /** - * - */ - public String password () - { - String result; - - result = this.password; - - // - return (result); - } - - /** - * - */ - public String realName () - { - String result; - - result = this.realName; - - // - return (result); - } - - - /** - * - */ - public User setEmail (String email) - { - this.email = email; - - // - return (this); - } - - /** - * - */ - public User setLogin (String login) - { - this.login = login; - - // - return (this); - } - - /** - * - */ - public User setPassword (String password) - { - this.password = password; - - // - return (this); - } - - /** - * - */ - public User setRealName (String realName) - { - this.realName = realName; - - // - return (this); - } - - /** - * - */ - public String toString () - { - String result; - - result = "|" + this.login + "|" + this.password + "|" + this.realName + "|"; - - // - return (result); - } -} - diff --git a/src/fr/devinsy/kiss4web/security/Users.java b/src/fr/devinsy/kiss4web/security/Users.java deleted file mode 100644 index 479852b..0000000 --- a/src/fr/devinsy/kiss4web/security/Users.java +++ /dev/null @@ -1,109 +0,0 @@ -package fr.devinsy.kiss4web.security; - - -import java.util.*; - - -/** - * - */ -public class Users extends Vector -{ - private static final long serialVersionUID = 6140538630004281217L; - - - /** - * - */ - public Users () - { - super (); - } - - - /** - * - */ - public User getByLogin (String login) - { - User result; - - if (login == null) - { - result = null; - } - else - { - result = null; - boolean ended = false; - Iterator iterator = this.iterator (); - while (!ended) - { - if (iterator.hasNext ()) - { - User user = iterator.next (); - if (user.login ().equals (login)) - { - ended = true; - result = user; - } - } - else - { - ended = true; - result = null; - } - } - } - - // - return (result); - } - - - /* - * - */ - public boolean contains (String login) - { - boolean result; - - if (getByLogin (login) == null) - { - result = false; - } - else - { - result = true; - } - - // - return (result); - } - - - /** - * - */ - public String toString () - { - String result; - - StringBuffer out; - out = new StringBuffer (); - - Iterator iterator = this.iterator (); - - while (iterator.hasNext ()) - { - out.append (iterator.next ().toString () + "\n"); - } - - result = out.toString (); - - // - return (result); - } -} - -// //////////////////////////////////////////////////////////////////////// diff --git a/src/fr/devinsy/kiss4web/security/UsersFileReader.java b/src/fr/devinsy/kiss4web/security/UsersFileReader.java deleted file mode 100644 index eb07585..0000000 --- a/src/fr/devinsy/kiss4web/security/UsersFileReader.java +++ /dev/null @@ -1,56 +0,0 @@ -package fr.devinsy.kiss4web.security; - -import java.io.*; -import java.util.*; - - -/** - * - */ -public class UsersFileReader -{ - /** - * - */ - static public Users load (String fileName) throws Exception - { - Users result; - - result = new Users (); - - Properties properties = new Properties(); - try - { - properties.load (new FileInputStream(fileName)); - - Iterator iterator = properties.keySet ().iterator (); - while (iterator.hasNext ()) - { - String key = (String) iterator.next (); - String valueLine = (String) properties.get (key); - - // - String[] values = valueLine.split (","); - - User user = new User (); - user.setLogin (key); - user.setPassword (values[0]); - user.setRealName (values[1]); - user.setEmail (values[2]); - - result.add (user); - // - } - } - catch (Exception exception) - { - throw new Exception ("can't load (" + fileName + ")", exception); - } - - - // - return (result); - } -} - -// //////////////////////////////////////////////////////////////////////// diff --git a/src/fr/devinsy/util/web/FileItemHelper.java b/src/fr/devinsy/util/web/FileItemHelper.java deleted file mode 100644 index 67a520a..0000000 --- a/src/fr/devinsy/util/web/FileItemHelper.java +++ /dev/null @@ -1,83 +0,0 @@ -package fr.devinsy.util.web; - -import java.util.List; - -import org.apache.commons.fileupload.FileItem; - - -/** - * - */ -public class FileItemHelper -{ - //static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (FileItemHelper.class); - - /** - * List FileItem - */ - static public String getItemValue (List items, String name) - { - String result; - - FileItem item = getItem(items, name); - - if (item == null) - { - result = null; - } - else - { - result = item.getString(); - } - - // - return(result); - } - - - /** - * List FileItem - */ - static public FileItem getItem (List items, String name) - { - FileItem result; - - if (name == null) - { - result = null; - } - else - { - result = null; - boolean ended = false; - int itemIndex = 0; - while (!ended) - { - if (itemIndex < items.size()) - { - FileItem item = (FileItem) items.get(itemIndex); - - if (name.equals(item.getFieldName())) - { - ended = true; - result = item; - } - else - { - itemIndex += 1; - } - } - else - { - ended = true; - result = null; - } - } - } - - // - return(result); - } -} - -// //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/util/web/Redirector.java b/src/fr/devinsy/util/web/Redirector.java deleted file mode 100644 index 2d10f70..0000000 --- a/src/fr/devinsy/util/web/Redirector.java +++ /dev/null @@ -1,26 +0,0 @@ -package fr.devinsy.util.web; - -import javax.servlet.http.HttpServletResponse; - - - -/** - * - */ -public class Redirector -{ - static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (Redirector.class); - - /** - * - */ - static public void redirect (HttpServletResponse response, String destination) - { - logger.info ("Redirect to <" + destination + ">"); - - response.setHeader ("Location", destination); - response.setStatus (HttpServletResponse.SC_MOVED_TEMPORARILY); - } -} - -// //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/util/web/SimpleSecurityAgent.java b/src/fr/devinsy/util/web/SimpleSecurityAgent.java deleted file mode 100644 index 59dc55e..0000000 --- a/src/fr/devinsy/util/web/SimpleSecurityAgent.java +++ /dev/null @@ -1,168 +0,0 @@ -package fr.devinsy.util.web; - -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import fr.devinsy.kiss4web.CookieHelper; - - -/** - * - */ -public class SimpleSecurityAgent -{ - static protected org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (SimpleSecurityAgent.class); - final static public String USERID_LABEL = "securityAgent.userId"; - final static public String ACCOUNTID_LABEL = "securityAgent.accountId"; - final static public String AUTH_LABEL = "securityAgent.auth"; - protected String userIdLabel; - protected String accountIdLabel; - protected String authLabel; - protected String secretKey; - - - - /** - * - */ - public SimpleSecurityAgent(String prefix, String secretKey) - { - this.userIdLabel = prefix + "." + USERID_LABEL; - this.accountIdLabel = prefix + "." + ACCOUNTID_LABEL; - this.authLabel= prefix + "." + AUTH_LABEL; - this.secretKey = secretKey; - } - - - /** - * - */ - static String md5sum(String source) - { - String result; - - result = org.apache.commons.codec.digest.DigestUtils.md5Hex(source); - - - // - return(result); - } - - - /** - * - */ - public String userId(HttpServletRequest request) - { - String result; - - result = (String) CookieHelper.getCookieValue(request, this.userIdLabel); - - // - return(result); - } - - - /** - * - */ - public String accountId(HttpServletRequest request) - { - String result; - - result = (String) CookieHelper.getCookieValue(request, this.accountIdLabel); - - // - return(result); - } - - - - /** - * - */ - public String auth(HttpServletRequest request) - { - String result; - - result = (String) CookieHelper.getCookieValue(request, this.authLabel); - - // - return(result); - } - - - /** - * Check authentication and refresh it (reset countdown). - */ - public boolean isAuthenticated (HttpServletRequest request, HttpServletResponse response) - { - boolean result; - - String accountId = accountId(request); - String userId = userId(request); - String auth = auth(request); - logger.info("cook=[" + auth + "]"); - - if (auth == null) - { - result = false; - } - else if (auth.equals(computeAuth(accountId, userId, request.getRemoteAddr(), this.secretKey))) - { - result = true; - - // Refresh cookies. - setAuthenticated(request, response, accountId, userId); - } - else - { - result = false; - } - - // - return (result); - } - - - /** - * - */ - static public String computeAuth(String key1, String key2, String key3, String key4) - { - String result; - - result = md5sum(key1 + key2 + key3+ key4); - - // - return(result); - } - - /** - * - */ - public void setAuthenticated (HttpServletRequest request, HttpServletResponse response, String accountId, String userId) - { - // Refresh cookie. - int duration = 60*60; - String auth = computeAuth(String.valueOf(accountId), userId, request.getRemoteAddr(), this.secretKey); - - response.addCookie (CookieHelper.buildCookie(this.authLabel, auth, duration)); - response.addCookie (CookieHelper.buildCookie(this.accountIdLabel, accountId, duration)); - response.addCookie (CookieHelper.buildCookie(this.userIdLabel, userId, duration)); - - logger.info("set [" + auth + "," + accountId + "," + userId + "," + request.getRemoteAddr() + ")"); - } - - - /** - * - */ - public void reset(HttpServletRequest request, HttpServletResponse response) - { - CookieHelper.reset(response, this.authLabel); - CookieHelper.reset(response, this.accountIdLabel); - CookieHelper.reset(response, this.userIdLabel); - } -} \ No newline at end of file diff --git a/tests/CmdExecTester.java b/tests/CmdExecTester.java index baef9bf..a85a80a 100644 --- a/tests/CmdExecTester.java +++ b/tests/CmdExecTester.java @@ -2,125 +2,94 @@ * XidvcTest. */ -import java.io.File; import java.util.regex.Matcher; import java.util.regex.Pattern; import fr.devinsy.util.cmdexec.CmdExec; import fr.devinsy.util.cmdexec.StreamGobbler; -import fr.devinsy.util.unix.Unix; -import fr.devinsy.kiss4web.*; - /** * */ -class CmdExecTester -{ +class CmdExecTester { static private org.apache.log4j.Logger logger; - static - { + static { // Initialize logger. org.apache.log4j.Logger logger = null; - org.apache.log4j.BasicConfigurator.configure (); + org.apache.log4j.BasicConfigurator.configure(); + logger = org.apache.log4j.Logger.getRootLogger(); + // logger.setLevel (org.apache.log4j.Level.INFO); + logger.setLevel(org.apache.log4j.Level.INFO); - logger = org.apache.log4j.Logger.getRootLogger (); - //logger.setLevel (org.apache.log4j.Level.INFO); - logger.setLevel (org.apache.log4j.Level.INFO); - - logger.info ("Enter"); + logger.info("Enter"); // - logger.info ("Set the log file format..."); + logger.info("Set the log file format..."); + // log = + // org.apache.log4j.Category.getInstance(Application.class.getName()); + logger.info("... done."); - // log = org.apache.log4j.Category.getInstance(Application.class.getName()); - logger.info ("... done."); - - logger.debug ("Exit"); - logger = org.apache.log4j.Logger.getLogger (CmdExecTester.class); + logger.debug("Exit"); + logger = org.apache.log4j.Logger.getLogger(CmdExecTester.class); } - - /** * */ - public static String check (String title, StringBuffer source, String model) - { + public static String check(final String title, final StringBuffer source, + final String model) { String result; - if (source.indexOf (model) == -1) - { - result = String.format ("%-40s -> KO <-", title) + "\nGet:\n" + source + "\nWaiting:\n" + model; + if (source.indexOf(model) == -1) { + result = String.format("%-40s -> KO <-", title) + "\nGet:\n" + + source + "\nWaiting:\n" + model; + } else { + result = String.format("%-40s [ OK ] ", title); } - else - { - result = String.format ("%-40s [ OK ] ", title); - } - // return (result); } - /** - * + * */ - public static String testCaller (String pathInfo, String prefix) - { - String result; - - result = "[" + pathInfo + "]=>[" + ServletDispatcher.pathInfoToClassName(pathInfo, prefix) + "]"; - - // - return(result); + public static void main(final String[] args) { + System.out.println("Automatic test action for CmdExec!"); + + Matcher m = Pattern.compile("^#\\sowner:\\s([a-z_][a-z0-9_-]*)$") + .matcher("# owner: cpm"); + m.matches(); + // System.out.println("owner=[" + m.matches() + "]"); + System.out.println("owner=[" + m.groupCount() + "]"); + System.out.println("owner=[" + m.group(1) + "]"); + // test1(); + } - - + /** * */ - public static void test1() - { - try - { + public static void test1() { + try { System.out.println("Launch ..."); - - //String command = "/bin/sort -r /etc/passwd"; + + // String command = "/bin/sort -r /etc/passwd"; String[] command = {"/bin/sort", "-r", "/etc/passwd"}; - CmdExec cmd = new CmdExec (command, StreamGobbler.BUFFER, StreamGobbler.BUFFER); + CmdExec cmd = new CmdExec(command, StreamGobbler.BUFFER, + StreamGobbler.BUFFER); System.out.println("exitVal=[" + cmd.getExitValue() + "]"); System.out.println("out=[" + cmd.getOutStream() + "]"); System.out.println("err=[" + cmd.getErrStream() + "]"); - } - catch (Exception exception) - { + } catch (Exception exception) { exception.printStackTrace(); logger.info("ERRRO=" + exception); } } - - /** - * - */ - public static void main(String[] args) - { - System.out.println("Automatic test action for CmdExec!"); - - Matcher m = Pattern.compile("^#\\sowner:\\s([a-z_][a-z0-9_-]*)$").matcher("# owner: cpm"); - m.matches(); - //System.out.println("owner=[" + m.matches() + "]"); - System.out.println("owner=[" + m.groupCount() + "]"); - System.out.println("owner=[" + m.group(1) + "]"); - //test1(); - - - } } diff --git a/tests/XidvcTester.java b/tests/XidvcTester.java deleted file mode 100644 index 9044f35..0000000 --- a/tests/XidvcTester.java +++ /dev/null @@ -1,90 +0,0 @@ -/** - * Kiss4Web tests. - */ - -import fr.devinsy.kiss4web.*; - - -/** - * - */ -class XidvcTester -{ - static private org.apache.log4j.Logger logger; - - static - { - // Initialize logger. - org.apache.log4j.Logger logger = null; - - org.apache.log4j.BasicConfigurator.configure (); - - - logger = org.apache.log4j.Logger.getRootLogger (); - //logger.setLevel (org.apache.log4j.Level.INFO); - logger.setLevel (org.apache.log4j.Level.INFO); - - logger.info ("Enter"); - - // - logger.info ("Set the log file format..."); - - - // log = org.apache.log4j.Category.getInstance(Application.class.getName()); - logger.info ("... done."); - - logger.debug ("Exit"); - logger = org.apache.log4j.Logger.getLogger (XidvcTester.class.getName ()); - } - - - - /** - * - */ - public static String check (String title, StringBuffer source, String model) - { - String result; - - if (source.indexOf (model) == -1) - { - result = String.format ("%-40s -> KO <-", title) + "\nGet:\n" + source + "\nWaiting:\n" + model; - - } - else - { - result = String.format ("%-40s [ OK ] ", title); - } - - - // - return (result); - } - - - /** - * - */ - public static String testCaller (String pathInfo, String prefix) - { - String result; - - result = "[" + pathInfo + "]=>[" + ServletDispatcher.pathInfoToClassName(pathInfo, prefix) + "]"; - - // - return(result); - } - - /** - * - */ - public static void main(String[] args) - { - System.out.println ("----------------------------"); - System.out.println(testCaller("/", "fr.devinsy.website")); - System.out.println(testCaller("/good/", "fr.devinsy.website")); - System.out.println(testCaller("/good/morning", "fr.devinsy.website")); - System.out.println(testCaller("/good/day_day", "fr.devinsy.website")); - System.out.println(testCaller("/good/day.xhtml", "fr.devinsy.website")); - } -}