From 1c78c0462c6d49935f91da0bd399e80ac7058b05 Mon Sep 17 00:00:00 2001 From: "Christian P. MOMON" Date: Thu, 17 Jun 2010 21:34:38 +0200 Subject: [PATCH] First commit. --- lib/commons-codec-1.4.jar | Bin 0 -> 58160 bytes lib/commons-fileupload-1.2.1.jar | Bin 0 -> 57779 bytes lib/commons-io-1.4.jar | Bin 0 -> 109043 bytes lib/log4j-1.2.14.jar | Bin 0 -> 367444 bytes src/CmdExecTester.java | 126 ++++ src/META-INF/MANIFEST.MF | 3 + src/XidvcTester.java | 94 +++ src/fr/devinsy/util/DataFile.java | 244 +++++++ src/fr/devinsy/util/DataFiles.java | 172 +++++ src/fr/devinsy/util/DateHelper.java | 351 ++++++++++ src/fr/devinsy/util/Digester.java | 113 ++++ src/fr/devinsy/util/FileIterator.java | 100 +++ src/fr/devinsy/util/FileIteratorState.java | 119 ++++ src/fr/devinsy/util/FileIteratorStates.java | 133 ++++ src/fr/devinsy/util/Fraction.java | 186 ++++++ .../util/InternetProxyConfiguration.java | 236 +++++++ src/fr/devinsy/util/SimpleAveragemeter.java | 125 ++++ src/fr/devinsy/util/SimpleChronometer.java | 50 ++ src/fr/devinsy/util/StacktraceWriter.java | 25 + src/fr/devinsy/util/StringConcatenator.java | 398 ++++++++++++ src/fr/devinsy/util/StringList.java | 448 +++++++++++++ src/fr/devinsy/util/StringListWriter.java | 82 +++ src/fr/devinsy/util/cmdexec/CmdExec.java | 453 +++++++++++++ .../devinsy/util/cmdexec/StreamGobbler.java | 142 ++++ src/fr/devinsy/util/cmdexec/Wrapper.java | 69 ++ src/fr/devinsy/util/unix/CachedFile.java | 124 ++++ src/fr/devinsy/util/unix/EtcGroupFile.java | 198 ++++++ .../devinsy/util/unix/EtcGroupFileReader.java | 81 +++ src/fr/devinsy/util/unix/EtcPasswdFile.java | 173 +++++ .../util/unix/EtcPasswdFileReader.java | 84 +++ src/fr/devinsy/util/unix/Group.java | 215 +++++++ src/fr/devinsy/util/unix/Groups.java | 226 +++++++ src/fr/devinsy/util/unix/Unix.java | 607 ++++++++++++++++++ src/fr/devinsy/util/unix/User.java | 346 ++++++++++ src/fr/devinsy/util/unix/Users.java | 172 +++++ src/fr/devinsy/util/unix/acl/Acl.java | 211 ++++++ src/fr/devinsy/util/unix/acl/AclEntries.java | 203 ++++++ src/fr/devinsy/util/unix/acl/AclEntry.java | 97 +++ src/fr/devinsy/util/unix/acl/AclManager.java | 426 ++++++++++++ src/fr/devinsy/util/web/FileItemHelper.java | 85 +++ src/fr/devinsy/util/web/Redirector.java | 26 + .../devinsy/util/web/SimpleSecurityAgent.java | 250 ++++++++ src/fr/devinsy/xidvc/Page.java | 18 + src/fr/devinsy/xidvc/PageManager.java | 392 +++++++++++ src/fr/devinsy/xidvc/ServletDispatcher.java | 71 ++ .../xidvc/SimpleServletDispatcher.java | 276 ++++++++ src/fr/devinsy/xidvc/security/Group.java | 101 +++ src/fr/devinsy/xidvc/security/Groups.java | 165 +++++ .../xidvc/security/GroupsFileReader.java | 58 ++ .../devinsy/xidvc/security/SecurityAgent.java | 154 +++++ src/fr/devinsy/xidvc/security/User.java | 129 ++++ src/fr/devinsy/xidvc/security/Users.java | 110 ++++ .../xidvc/security/UsersFileReader.java | 59 ++ tests/Test.java | 242 +++++++ 54 files changed, 8968 insertions(+) create mode 100644 lib/commons-codec-1.4.jar create mode 100644 lib/commons-fileupload-1.2.1.jar create mode 100644 lib/commons-io-1.4.jar create mode 100644 lib/log4j-1.2.14.jar create mode 100644 src/CmdExecTester.java create mode 100644 src/META-INF/MANIFEST.MF create mode 100644 src/XidvcTester.java create mode 100644 src/fr/devinsy/util/DataFile.java create mode 100644 src/fr/devinsy/util/DataFiles.java create mode 100644 src/fr/devinsy/util/DateHelper.java create mode 100644 src/fr/devinsy/util/Digester.java create mode 100644 src/fr/devinsy/util/FileIterator.java create mode 100644 src/fr/devinsy/util/FileIteratorState.java create mode 100644 src/fr/devinsy/util/FileIteratorStates.java create mode 100644 src/fr/devinsy/util/Fraction.java create mode 100644 src/fr/devinsy/util/InternetProxyConfiguration.java create mode 100644 src/fr/devinsy/util/SimpleAveragemeter.java create mode 100644 src/fr/devinsy/util/SimpleChronometer.java create mode 100644 src/fr/devinsy/util/StacktraceWriter.java create mode 100644 src/fr/devinsy/util/StringConcatenator.java create mode 100644 src/fr/devinsy/util/StringList.java create mode 100644 src/fr/devinsy/util/StringListWriter.java create mode 100644 src/fr/devinsy/util/cmdexec/CmdExec.java create mode 100644 src/fr/devinsy/util/cmdexec/StreamGobbler.java create mode 100644 src/fr/devinsy/util/cmdexec/Wrapper.java create mode 100644 src/fr/devinsy/util/unix/CachedFile.java create mode 100644 src/fr/devinsy/util/unix/EtcGroupFile.java create mode 100644 src/fr/devinsy/util/unix/EtcGroupFileReader.java create mode 100644 src/fr/devinsy/util/unix/EtcPasswdFile.java create mode 100644 src/fr/devinsy/util/unix/EtcPasswdFileReader.java create mode 100644 src/fr/devinsy/util/unix/Group.java create mode 100644 src/fr/devinsy/util/unix/Groups.java create mode 100644 src/fr/devinsy/util/unix/Unix.java create mode 100644 src/fr/devinsy/util/unix/User.java create mode 100644 src/fr/devinsy/util/unix/Users.java create mode 100644 src/fr/devinsy/util/unix/acl/Acl.java create mode 100644 src/fr/devinsy/util/unix/acl/AclEntries.java create mode 100644 src/fr/devinsy/util/unix/acl/AclEntry.java create mode 100644 src/fr/devinsy/util/unix/acl/AclManager.java create mode 100644 src/fr/devinsy/util/web/FileItemHelper.java create mode 100644 src/fr/devinsy/util/web/Redirector.java create mode 100644 src/fr/devinsy/util/web/SimpleSecurityAgent.java create mode 100644 src/fr/devinsy/xidvc/Page.java create mode 100644 src/fr/devinsy/xidvc/PageManager.java create mode 100644 src/fr/devinsy/xidvc/ServletDispatcher.java create mode 100644 src/fr/devinsy/xidvc/SimpleServletDispatcher.java create mode 100644 src/fr/devinsy/xidvc/security/Group.java create mode 100644 src/fr/devinsy/xidvc/security/Groups.java create mode 100644 src/fr/devinsy/xidvc/security/GroupsFileReader.java create mode 100644 src/fr/devinsy/xidvc/security/SecurityAgent.java create mode 100644 src/fr/devinsy/xidvc/security/User.java create mode 100644 src/fr/devinsy/xidvc/security/Users.java create mode 100644 src/fr/devinsy/xidvc/security/UsersFileReader.java create mode 100644 tests/Test.java diff --git a/lib/commons-codec-1.4.jar b/lib/commons-codec-1.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..458d432da88b0efeab640c229903fb5aad274044 GIT binary patch literal 58160 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 literal 0 HcmV?d00001 diff --git a/lib/commons-fileupload-1.2.1.jar b/lib/commons-fileupload-1.2.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..aa209b3887c90933cdc58c8c8572e90435e8e48d GIT binary patch literal 57779 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

&knfH<$GJKCG=|8T=8!%js9}oQ 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�_l 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 literal 0 HcmV?d00001 diff --git a/lib/commons-io-1.4.jar b/lib/commons-io-1.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..133dc6cb35f5ca2c5920fd0933a557c2def88680 GIT binary patch literal 109043 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 OKnU!J{D3_>*#80Lb|t_7 literal 0 HcmV?d00001 diff --git a/lib/log4j-1.2.14.jar b/lib/log4j-1.2.14.jar new file mode 100644 index 0000000000000000000000000000000000000000..625130719013f195869881a36dcb8d2b14d64d1e GIT binary patch literal 367444 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

y7?_zm*DO`f>w8ZueoiI)a;{2`7@A#JkEi=mHI4 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

FeaG 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 z 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�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 literal 0 HcmV?d00001 diff --git a/src/CmdExecTester.java b/src/CmdExecTester.java new file mode 100644 index 0000000..c32a911 --- /dev/null +++ b/src/CmdExecTester.java @@ -0,0 +1,126 @@ +/** + * 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.xidvc.*; + + +/** + * + */ +class CmdExecTester +{ + 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 (CmdExecTester.class); + } + + + + /** + * + */ + 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 test1() + { + try + { + System.out.println("Launch ..."); + + //String command = "/bin/sort -r /etc/passwd"; + String[] command = {"/bin/sort", "-r", "/etc/passwd"}; + + 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) + { + 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/src/META-INF/MANIFEST.MF b/src/META-INF/MANIFEST.MF new file mode 100644 index 0000000..5e94951 --- /dev/null +++ b/src/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + diff --git a/src/XidvcTester.java b/src/XidvcTester.java new file mode 100644 index 0000000..fb51ac9 --- /dev/null +++ b/src/XidvcTester.java @@ -0,0 +1,94 @@ +/** + * XidvcTest. + */ + +import java.io.File; +import java.util.regex.Pattern; + +import fr.devinsy.util.unix.Unix; +import fr.devinsy.xidvc.*; + + +/** + * + */ +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")); + } +} diff --git a/src/fr/devinsy/util/DataFile.java b/src/fr/devinsy/util/DataFile.java new file mode 100644 index 0000000..7737cb9 --- /dev/null +++ b/src/fr/devinsy/util/DataFile.java @@ -0,0 +1,244 @@ +/** + * @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.util; + + +/** + * This class defines a content file. + * + */ +public class DataFile +{ + static public int NOID = 0; + static public int DEFAULT_SIZE = 0; + + // + protected int id; + protected int contentId; + protected String name; + protected long size; + protected byte[] data; + protected String creationDate; + protected String creationUser; + + /** + * + */ + public DataFile () + { + this.id = NOID; + this.contentId = NOID; + this.name = null; + this.size = DEFAULT_SIZE; + this.data = null; + this.creationDate = null; + this.creationUser = null; + } + + /** + * + */ + public DataFile (String name, long size, byte[] data) + { + this.id = NOID; + this.contentId = NOID; + this.name = name; + this.size = size; + this.data = data; + this.creationDate = null; + this.creationUser = null; + } + + /** + * + */ + public DataFile (int contentId, String name, long size, byte[] data) + { + this.id = NOID; + this.contentId = contentId; + this.name = name; + this.size = size; + this.data = data; + this.creationDate = null; + this.creationUser = null; + } + + /** + * + */ + public int id () + { + int result; + + result = this.id; + + // + return (result); + } + + + /** + * + */ + public void setId (int id) + { + this.id = id; + } + + /** + * + */ + public int contentId () + { + int result; + + result = this.contentId; + + // + return (result); + } + + /** + * + */ + public void setContentId (int contentId) + { + this.contentId = contentId; + } + + /** + * + */ + public String name () + { + String result; + + result = this.name; + + // + return (result); + } + + /** + * + */ + public void setName (String name) + { + if (name == null) + { + this.name = ""; + } + else + { + this.name = name; + } + } + + /** + * + */ + public long size () + { + long result; + + result = this.size; + + // + return (result); + } + + /** + * + */ + public void setSize (long size) + { + if (size >= 0) + { + this.size = size; + } + else + { + this.size = 0; + } + } + + /** + * + */ + public byte[] data () + { + byte[] result; + + result = this.data; + + // + return (result); + } + + /** + * + */ + public void setData (byte[] data) + { + this.data = data; + } + + /** + * + */ + public String creationDate () + { + String result; + + result = this.creationDate; + + // + return (result); + } + + /** + * + */ + public void setCreationDate (String creationDate) + { + if (creationDate == null) + { + this.creationDate = ""; + } + else + { + this.creationDate = creationDate; + } + } + + /** + * + */ + public String creationUser () + { + String result; + + result = this.creationUser; + + // + return (result); + } + + /** + * + */ + public void setCreationUser (String creationUser) + { + if (creationUser == null) + { + this.creationUser = ""; + } + else + { + this.creationUser = creationUser; + } + } +} diff --git a/src/fr/devinsy/util/DataFiles.java b/src/fr/devinsy/util/DataFiles.java new file mode 100644 index 0000000..12dcae9 --- /dev/null +++ b/src/fr/devinsy/util/DataFiles.java @@ -0,0 +1,172 @@ +/** + * @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.util; + +import java.util.ArrayList; + +/** + * This class is a collection of DataFile objects whit some specific methods. + * + */ +public class DataFiles extends ArrayList +{ + private static final long serialVersionUID = -4584622422555785456L; + + + /** + * + * + */ + public DataFiles() + { + super(); + } + + + /** + * + * @param source + */ + public DataFiles (DataFiles source) + { + super(source); + } + + + + /** + * + */ + public DataFile getByIndex (int index) + { + DataFile result; + + result = (DataFile) super.get (index); + + // + return (result); + } + + /** + * + */ + public DataFile getByName (String name) + { + DataFile result = null; + + if ((name == null) || (name.equals (""))) + { + result = null; + } + else + { + boolean ended = false; + int nDataFile = 0; + while (!ended) + { + if (nDataFile >= this.size()) + { + ended = true; + result = null; + } + else + { + DataFile contentFile = this.getByIndex (nDataFile); + + if (name.equals(contentFile.name())) + { + ended = true; + result = contentFile; + } + else + { + nDataFile += 1; + } + } + } + } + + // + return (result); + } + + /** + * + */ + public DataFile getById (int id) + { + DataFile result = null; + + boolean ended = false; + int nDataFile = 0; + while (!ended) + { + if (nDataFile >= this.size()) + { + ended = true; + result = null; + } + else + { + DataFile contentFile = this.getByIndex (nDataFile); + + if (id == contentFile.id()) + { + ended = true; + result = contentFile; + } + else + { + nDataFile += 1; + } + } + } + + // + return (result); + } + + + /** + * + */ + public DataFiles getByContentId (int id) + { + DataFiles result = new DataFiles(); + + for (int nDataFile = 0; nDataFile < this.size(); nDataFile++) + { + DataFile contentFile = this.getByIndex(nDataFile); + + if (contentFile.contentId() == id) + { + result.add(contentFile); + } + } + + // + return (result); + } + + + /** + * + */ + public String toString() + { + StringBuffer result = new StringBuffer(); + + for (int nDataFile = 0; nDataFile < this.size(); nDataFile++) + { + DataFile contentFile = this.getByIndex(nDataFile); + result.append ("== " + contentFile.name() + "\n"); + result.append ("contentFile " + nDataFile + " - " + contentFile.name() + "\n"); + } + + // + return (result.toString()); + } +} diff --git a/src/fr/devinsy/util/DateHelper.java b/src/fr/devinsy/util/DateHelper.java new file mode 100644 index 0000000..5004c4b --- /dev/null +++ b/src/fr/devinsy/util/DateHelper.java @@ -0,0 +1,351 @@ +/** + * @author Christian Momon, June 2010. + * 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.util; + + +import java.util.Calendar; +import java.util.GregorianCalendar; +import java.util.regex.*; + + +/** + * This class groups function to help in Calendar manipulation. + */ +public class DateHelper +{ + public String LINE_SEPARATOR = "\n"; + + static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (DateHelper.class); + + static final String EUROPEAN_DATE_PATTERN = "^([0123]{0,1}\\d)/([01]{0,1}\\d)/(\\d\\d\\d\\d)$"; + static final String RAW_DATE_PATTERN = "^(\\d\\d\\d\\d)([01]\\d)([0123]\\d)$"; + static final String ISO_DATE_PATTERN = "^(\\d\\d\\d\\d)([01]\\d)([0123]\\d)$"; + static final String AMERICAN_DATE_PATTERN = "^([01]{0,1}\\d)/([0123]{0,1}\\d)/(\\d\\d\\d\\d)$"; + + /** + * + */ + static public String europeanFormat (Calendar time) + { + String result; + + if (time == null) + { + result = ""; + } + else + { + result = String.format ("%02d/%02d/%04d", time.get(Calendar.DAY_OF_MONTH), time.get(Calendar.MONTH) + 1, time.get(Calendar.YEAR)); + } + + // + return (result); + } + + + /** + * + */ + static public String ISOFormat (Calendar time) + { + String result; + + if (time == null) + { + result = ""; + } + else + { + result = String.format ("%04d-%02d-%02d", time.get(Calendar.YEAR), time.get(Calendar.MONTH) + 1, time.get(Calendar.DAY_OF_MONTH)); + } + + // + return (result); + } + + + /** + * + */ + public String rawFormat (Calendar time) + { + String result; + + if (time == null) + { + result = ""; + } + else + { + result = String.format ("%02d/%02d/%04d", time.get(Calendar.MONTH) + 1, time.get(Calendar.DAY_OF_MONTH), time.get(Calendar.DAY_OF_MONTH)); + } + + // + return (result); + } + + + /** + * + */ + public String americanFormat (Calendar time) + { + String result; + + if (time == null) + { + result = ""; + } + else + { + result = String.format ("%04d%02d%02d", time.get(Calendar.MONTH), time.get(Calendar.DAY_OF_MONTH) + 1, time.get(Calendar.YEAR)); + } + + // + return (result); + } + + + /** + * + */ + public boolean isValidDate (String date) + { + boolean result; + + if ((isEuropeanFormat (date)) || + (isRawFormat (date)) || + (isISOFormat (date)) || + (isAmericanFormat (date))) + { + result = true; + } + else + { + result = false; + } + + // + return (result); + } + + /** + * + */ + static public boolean isEuropeanFormat (String date) + { + boolean result; + + if (date == null) + { + result = false; + } + else + { + result = date.matches (EUROPEAN_DATE_PATTERN); + } + + // + return (result); + } + + /** + * + */ + static public boolean isRawFormat (String date) + { + boolean result; + + if (date == null) + { + result = false; + } + else + { + result = date.matches (RAW_DATE_PATTERN); + } + + // + return (result); + } + + /** + * + */ + static public boolean isISOFormat (String date) + { + boolean result; + + if (date == null) + { + result = false; + } + else + { + result = date.matches (ISO_DATE_PATTERN); + } + + // + return (result); + } + + /** + * + */ + static public boolean isAmericanFormat (String date) + { + boolean result; + + if (date == null) + { + result = false; + } + else + { + result = date.matches (AMERICAN_DATE_PATTERN); + } + + // + return (result); + } + + + /** + * + */ + static public Calendar parseISODate (String date) + { + Calendar result; + + Pattern pattern = Pattern.compile (ISO_DATE_PATTERN); + Matcher matcher = pattern.matcher (date); + + if ((matcher.find ()) && (matcher.groupCount () == 3)) + { + result = new GregorianCalendar (Integer.parseInt (matcher.group (1)), + Integer.parseInt (matcher.group (2)) - 1, + Integer.parseInt (matcher.group (3))); + } + else + { + result = null; + } + + // + return (result); + } + + + /** + * + */ + static public Calendar parseRawDate (String date) + { + Calendar result; + + Pattern pattern = Pattern.compile (RAW_DATE_PATTERN); + Matcher matcher = pattern.matcher (date); + + if ((matcher.find ()) && (matcher.groupCount () == 3)) + { + result = new GregorianCalendar (Integer.parseInt (matcher.group (1)), + Integer.parseInt (matcher.group (2)) - 1, + Integer.parseInt (matcher.group (3))); + } + else + { + result = null; + } + + // + return (result); + } + + + /** + * + */ + static public Calendar parseAmericanDate (String date) + { + Calendar result; + + Pattern pattern = Pattern.compile (AMERICAN_DATE_PATTERN); + Matcher matcher = pattern.matcher (date); + + if ((matcher.find ()) && (matcher.groupCount () == 3)) + { + result = new GregorianCalendar (Integer.parseInt (matcher.group (3)), + Integer.parseInt (matcher.group (1)) - 1, + Integer.parseInt (matcher.group (2))); + } + else + { + result = null; + } + + // + return (result); + } + + + /** + * + */ + static public Calendar parseEuropeanDate (String date) + { + Calendar result; + + Pattern pattern = Pattern.compile (EUROPEAN_DATE_PATTERN); + Matcher matcher = pattern.matcher (date); + + if ((matcher.find ()) && (matcher.groupCount () == 3)) + { + result = new GregorianCalendar (Integer.parseInt (matcher.group (3)), + Integer.parseInt (matcher.group (2)) - 1, + Integer.parseInt (matcher.group (1))); + } + else + { + result = null; + } + + // + return (result); + } + + + /** + * Note: European parsing test made before the American parsing one. + */ + static public Calendar parseDate (String date) + { + Calendar result; + + if (isEuropeanFormat (date)) + { + result = parseEuropeanDate (date); + } + else if (isRawFormat (date)) + { + result = parseRawDate (date); + } + else if (isISOFormat (date)) + { + result = parseISODate (date); + } + else if (isAmericanFormat (date)) + { + result = parseAmericanDate (date); + } + else + { + result = null; + } + + // + return (result); + } +} diff --git a/src/fr/devinsy/util/Digester.java b/src/fr/devinsy/util/Digester.java new file mode 100644 index 0000000..9d8f14d --- /dev/null +++ b/src/fr/devinsy/util/Digester.java @@ -0,0 +1,113 @@ +/* + * @author Christian Momon, 2006-2010 + * 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.util; + +import java.io.*; +import java.io.File; +import java.security.*; + + +/** + * This class is a helper to use MessageDigester class. + */ +public class Digester +{ + /** + * + */ + static public String humanReadableDigest (byte[] digest) + { + String result; + + StringBuffer hashString = new StringBuffer (); + + for (int letterIndex = 0; letterIndex < digest.length; ++letterIndex) + { + String hex = Integer.toHexString (digest[letterIndex]); + if (hex.length() == 1) + { + hashString.append ('0'); + hashString.append (hex.charAt (hex.length () - 1)); + } + else + { + hashString.append (hex.substring (hex.length () - 2)); + } + } + + result = hashString.toString(); + + // + return (result); + } + + + /** + * "SHA-1", "MD5", "SHA-256", and "SHA-512" + */ + static public String computeHash (String digestMethod, File file) throws Exception + { + String result; + + if ((file == null) || (!file.exists())) + { + result = null; + } + else + { + //byte[] hash = null; + + InputStream source = null; + try + { + MessageDigest digester = MessageDigest.getInstance (digestMethod); + source = new FileInputStream (file); + boolean ended = false; + int bytesNumber; + byte[] buffer = new byte[100*1024]; + while (!ended) + { + bytesNumber = source.read (buffer); + if (bytesNumber == -1) + { + ended = true; + } + else + { + digester.update (buffer, 0, bytesNumber); + } + } + + byte[] digest = digester.digest (); + + result = humanReadableDigest (digest); + } + catch (java.security.NoSuchAlgorithmException exception) + { + throw new Exception("Digest method unknown.", exception); + } + catch (java.io.FileNotFoundException exception) + { + throw new Exception("Digest method unknown.", exception); + } + catch (java.io.IOException exception) + { + throw new Exception("Error reading file.", exception); + } + finally + { + if (source != null) + { + source.close(); + } + } + } + + // + return (result); + } +} diff --git a/src/fr/devinsy/util/FileIterator.java b/src/fr/devinsy/util/FileIterator.java new file mode 100644 index 0000000..2acb34d --- /dev/null +++ b/src/fr/devinsy/util/FileIterator.java @@ -0,0 +1,100 @@ +package fr.devinsy.util; + +import java.io.File; +import java.util.Iterator; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + + +/** + * + */ +public class FileIterator implements Iterator +{ + static org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (FileIterator.class); + + protected FileIteratorStates states; + protected File previous; + protected String filter; + protected Pattern pattern; + + /** + * + */ + public FileIterator (File root) + { + this.states = new FileIteratorStates(root); + this.previous = null; + this.filter = null; + this.pattern = null; + } + + + /** + * TODO + */ + public FileIterator (File root, String filter) + { + this.states = new FileIteratorStates(root); + this.previous = null; + + this.filter = filter; + this.pattern = Pattern.compile(filter); + } + + + /** + * + */ + @Override + public boolean hasNext() + { + boolean result; + + result = this.states.hasNext(); + + // + return(result); + } + + + /** + * + */ + @Override + public File next() + { + File result; + + result = this.states.next(); + this.previous = result; + + // + return(result); + } + + + @Override + public void remove() + { + if (this.previous != null) + { + this.previous.delete(); + this.previous = null; + } + } + + /** + * + */ + public String toString() + { + String result; + + result = "[depth=" + this.states.currentDepth + "][index=" + this.states.get(this.states.currentDepth).currentIndex() + "/" + this.states.get(this.states.currentDepth).files.length + "]"; + + // + return(result); + } +} diff --git a/src/fr/devinsy/util/FileIteratorState.java b/src/fr/devinsy/util/FileIteratorState.java new file mode 100644 index 0000000..bb6ae82 --- /dev/null +++ b/src/fr/devinsy/util/FileIteratorState.java @@ -0,0 +1,119 @@ +package fr.devinsy.util; + +import java.io.File; + + + +/** + * + */ +public class FileIteratorState +{ + protected File[] files; + protected int currentIndex; + + /** + * + */ + public FileIteratorState (File file) + { + if (file.isDirectory()) + { + this.files = file.listFiles(); + this.currentIndex = 0; + } + else + { + // File case or not exist file. + this.files = new File[1]; + this.files[0] = file; + this.currentIndex = 0; + } + } + + + /** + * + */ + protected File[] files() + { + File[] result; + + result = this.files; + + // + return(result); + } + + + /** + * + */ + protected int currentIndex() + { + int result; + + result = this.currentIndex; + + // + return(result); + } + + + /** + * + */ + protected File currentFile() + { + File result; + + if (this.currentIndex >= this.files.length) + { + result = null; + } + else + { + result = this.files[this.currentIndex]; + } + + // + return(result); + } + + + /** + * + */ + public boolean hasNext() + { + boolean result; + + + if (this.currentIndex >= this.files.length) + { + result = false; + } + else + { + result = true; + } + + // + return(result); + } + + + /** + * + */ + public File next() + { + File result; + + result = this.currentFile(); + this.currentIndex += 1; + + // + return(result); + } +} diff --git a/src/fr/devinsy/util/FileIteratorStates.java b/src/fr/devinsy/util/FileIteratorStates.java new file mode 100644 index 0000000..1ca8f83 --- /dev/null +++ b/src/fr/devinsy/util/FileIteratorStates.java @@ -0,0 +1,133 @@ +package fr.devinsy.util; + +import java.io.File; +import java.util.Vector; + + + +/** + * + */ +public class FileIteratorStates extends Vector +{ + private static final long serialVersionUID = 8790133455427427766L; + + protected int currentDepth;; + + + /** + * + */ + public FileIteratorStates (File root) + { + super(); + + this.currentDepth = -1; // Note: push method increments this value. + if (root != null) + { + this.push(root); + } + } + + + /** + * + */ + protected FileIteratorState currentState() + { + FileIteratorState result; + + result = this.get(this.currentDepth); + + // + return(result); + } + + + /** + * + */ + protected File currentFile() + { + File result; + + result = this.currentState().currentFile(); + + // + return(result); + } + + + /** + * + */ + public void push(File directory) + { + this.add(new FileIteratorState(directory)); + this.currentDepth += 1; + } + + + /** + * + */ + public void pop() + { + this.removeElementAt(this.currentDepth); + this.currentDepth -= 1; + } + + + /** + * + */ + public boolean hasNext() + { + boolean result; + + result = this.currentState().hasNext(); + + // + return(result); + } + + + /** + * + */ + public File next() + { + File result; + + result = this.currentState().next(); + + if (result.isDirectory()) + { + this.push(result); + } + + // Up states if needed. + boolean ended = false; + while(!ended) + { + if (this.hasNext()) + { + ended = true; + } + else + { + if (this.currentDepth == 0) + { + ended = true; + } + else + { + this.pop(); + } + } + } + + // + return(result); + } +} diff --git a/src/fr/devinsy/util/Fraction.java b/src/fr/devinsy/util/Fraction.java new file mode 100644 index 0000000..ce5bc4b --- /dev/null +++ b/src/fr/devinsy/util/Fraction.java @@ -0,0 +1,186 @@ +/** + * Fraction class. Useful for display beautiful percentage value as string. + * + * @author Christian Momon, September 2009. + * 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.util; + + +/** + * + * */ +public class Fraction +{ + protected long numerator; + protected long denominator; + + + /** + * + */ + public Fraction(long numerator, long denominator) + { + this.numerator = numerator; + this.denominator = denominator; + } + + + /** + * + */ + public long numerator() + { + long result; + + result = this.numerator; + + // + return (result); + } + + + /** + * + */ + public long denominator() + { + long result; + + result = this.denominator; + + // + return (result); + } + + /** + * + */ + public long percentage() throws Exception + { + long result; + + result = percentage(this.numerator, this.denominator); + + // + return (result); + } + + + /** + * + */ + static public long percentage(long numerator, long denominator) throws Exception + { + long result; + + if (denominator == 0) + { + throw new Exception("denominator is zero"); + } + else + { + result = Math.round(numerator * 100 / denominator); + } + + // + return (result); + } + + + /** + * + */ + static public String percentageString(long numerator, long denominator) + { + String result; + + try + { + long value = percentage(numerator, denominator); + + if (numerator == 0) + { + result = "0%"; + } + else if (value == 0) + { + result = "~0%"; + } + else if (value < 10) + { + result = "0" + value + "%"; + } + else + { + result = value + "%"; + } + } + catch (Exception exception) + { + result = "--%"; + } + + + // + return (result); + } + + + /** + * + */ + public String percentageString() + { + String result; + + result = percentageString(this.numerator, this.denominator); + + // + return (result); + } + + + /** + * + */ + static public String percentageFullString(long numerator, long denominator) + { + String result; + + result = percentageString(numerator, denominator); + + // + return (result); + } + + + /** + * + */ + public String percentageFullString() + { + String result; + + result = percentageFullString(this.numerator, this.denominator); + + // + return (result); + } + + + + /** + * + */ + public String toString() + { + String result; + + result = this.numerator + "/" + this.denominator; + + // + return(result); + } +} diff --git a/src/fr/devinsy/util/InternetProxyConfiguration.java b/src/fr/devinsy/util/InternetProxyConfiguration.java new file mode 100644 index 0000000..3d0c41d --- /dev/null +++ b/src/fr/devinsy/util/InternetProxyConfiguration.java @@ -0,0 +1,236 @@ +/** + * @author Christian Momon, September 2009. + * 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.util; + + +/** + * + */ +public class InternetProxyConfiguration +{ + // + protected String host; + protected int port; + protected String login; + protected String password; + + /** + * + */ + public InternetProxyConfiguration () + { + this.host = ""; + this.port = 0; + this.login = ""; + this.password = ""; + } + + + /** + * + */ + public InternetProxyConfiguration (String host, String port, String login, String password) throws Exception + { + // + if (host == null) + { + this.host = ""; + } + else + { + this.host = host; + } + + // + if ((port == null) || (port.trim().length() == 0)) + { + this.port = 0; + } + else + { + try + { + this.port = Integer.parseInt (port); + } + catch (Exception exception) + { + String errorMessage = "Incorrect PROXY port value."; + throw new Exception (errorMessage, exception); + } + } + + // + if (login == null) + { + this.login = ""; + } + else + { + this.login = login; + } + + // + if (password == null) + { + this.password = ""; + } + else + { + this.password = password; + } + } + + + /** + * + */ + public InternetProxyConfiguration (String host, int port, String login, String password) + { + // + if (host == null) + { + this.host = ""; + } + else + { + this.host = host; + } + + // + this.port = port; + + // + if (login == null) + { + this.login = ""; + } + else + { + this.login = login; + } + + // + if (password == null) + { + this.password = ""; + } + else + { + this.password = password; + } + } + + + /** + * + */ + public String host() + { + String result; + + result = this.host; + + // + return (result); + } + + + /** + * + */ + public int port() + { + int result; + + result = this.port; + + // + return (result); + } + + + /** + * + */ + public String login() + { + String result; + + result = this.login; + + // + return (result); + } + + + /** + * + */ + public String password() + { + String result; + + result = this.password; + + // + return (result); + } + + + /** + * + */ + public boolean isInitialized() + { + boolean result; + + if ((this.host.length() > 0) && (this.port > 0)) + { + result = true; + } + else + { + result = false; + } + + // + return(result); + } + + + /** + * + */ + public String toString() + { + String result; + + String login; + if (this.login.length() == 0) + { + login = ""; + } + else + { + login = "********"; + } + + String password; + if (this.password.length() == 0) + { + password = ""; + } + else + { + password = "********"; + } + + result = "(" + this.host + "," + this.port + "," + login + "," + password + ")"; + + // + return (result); + } +} diff --git a/src/fr/devinsy/util/SimpleAveragemeter.java b/src/fr/devinsy/util/SimpleAveragemeter.java new file mode 100644 index 0000000..38d64d8 --- /dev/null +++ b/src/fr/devinsy/util/SimpleAveragemeter.java @@ -0,0 +1,125 @@ +/** + * @author Christian Momon, September 2009. + * 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.util; + +/** + * This class defines a simple average manager. For example, it is useful for millisecond. + * The maximum value available in input is one day in millisecond. + */ +public class SimpleAveragemeter +{ + // + protected long sum; + protected long cardinal; + protected long MAX_ADD = 1*24*60*60*1000; // One day in millisecond. + + /** + * + */ + public SimpleAveragemeter () + { + this.reset(); + } + + + /** + * + */ + synchronized public void reset() + { + this.sum = 0; + this.cardinal = 0; + } + + + /** + * + */ + synchronized public long average() + { + long result; + + if (cardinal == 0) + { + result = 0; + } + else + { + result = (long) sum/cardinal; + } + + // + return(result); + } + + + /** + * + */ + public long value() + { + long result; + + result = this.average(); + + // + return(result); + } + + + /** + * + */ + public long cardinal() + { + long result; + + result = this.cardinal; + + // + return(result); + } + + + /** + * + */ + synchronized public void add(long value) + { + // Manage the sum limit. + if ((this.sum > Long.MAX_VALUE/2) && (cardinal%2 == 0)) + { + this.sum = (long) this.sum /2; + this.cardinal = this.cardinal/2; + } + + // Add the new value. + if (this.sum > MAX_ADD) + { + this.sum += MAX_ADD; + this.cardinal += 1; + } + else + { + this.sum += value; + this.cardinal += 1; + } + } + + + /** + * + */ + public String toString() + { + String result; + + result = Long.toString(this.average()); + + // + return (result); + } +} diff --git a/src/fr/devinsy/util/SimpleChronometer.java b/src/fr/devinsy/util/SimpleChronometer.java new file mode 100644 index 0000000..c172db6 --- /dev/null +++ b/src/fr/devinsy/util/SimpleChronometer.java @@ -0,0 +1,50 @@ +/** + * @author Christian Momon, in 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.util; + +import java.util.Date; + + +/** + * + */ +public class SimpleChronometer +{ + // + protected long firstTime; + + + /** + * + */ + public SimpleChronometer () + { + this.reset(); + } + + + /** + * + */ + public void reset() + { + this.firstTime = new Date().getTime(); + } + + + /** + * + */ + public long interval() + { + long result; + + result = new Date().getTime() - this.firstTime; + + // + return(result); + } +} diff --git a/src/fr/devinsy/util/StacktraceWriter.java b/src/fr/devinsy/util/StacktraceWriter.java new file mode 100644 index 0000000..8bc2f98 --- /dev/null +++ b/src/fr/devinsy/util/StacktraceWriter.java @@ -0,0 +1,25 @@ +package fr.devinsy.util; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; + +/** + * + */ +public class StacktraceWriter +{ + /** + * + */ + static public String toString(Exception exception) + { + String result; + + ByteArrayOutputStream out = new ByteArrayOutputStream(50000); + exception.printStackTrace(new PrintStream(out)); + result = out.toString(); + + // + return (result); + } +} diff --git a/src/fr/devinsy/util/StringConcatenator.java b/src/fr/devinsy/util/StringConcatenator.java new file mode 100644 index 0000000..085f464 --- /dev/null +++ b/src/fr/devinsy/util/StringConcatenator.java @@ -0,0 +1,398 @@ +/** + * @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.util; + +import java.io.IOException; +import java.util.ArrayList; + +/** + * This class is a collection of String objects with specific methods. + * It makes possible to build a string without any copy. + * The goal is to optimize the building of strings where they are lot of concatenation action. + */ +public class StringConcatenator extends ArrayList +{ + private static final long serialVersionUID = -1154185934830213732L; + public String LINE_SEPARATOR = "\n"; + + /** + * + */ + public StringConcatenator () + { + super(); + } + + + /** + * + */ + public String getByIndex(int id) + { + String result; + + result = (String) this.get(id); + + // + return (result); + } + + + /** + * + */ + public StringConcatenator appendln() + { + StringConcatenator result; + + this.add(LINE_SEPARATOR); + + result = this; + + // + return(result); + } + + + /** + * + */ + public StringConcatenator append(String string) + { + StringConcatenator result; + + if (string != null) + { + this.add(string); + } + + result = this; + + // + return(result); + } + + + /** + * + */ + public StringConcatenator appendln(String string) + { + StringConcatenator result; + + result = this.append(string).appendln(); + + // + return(result); + } + + + /** + * + */ + public StringConcatenator append(char character) + { + StringConcatenator result; + + this.add(String.valueOf(character)); + + result = this; + + // + return(result); + } + + + /** + * + */ + public StringConcatenator appendln(char character) + { + StringConcatenator result; + + result = this.append(character).appendln(); + + // + return(result); + } + + + /** + * + */ + public StringConcatenator append(StringConcatenator string) + { + StringConcatenator result; + + if (string != null) + { + for (int nString = 0; nString < string.size(); nString++) + { + this.add(string.getByIndex(nString)); + } + } + + result = this; + + // + return(result); + } + + /** + * + */ + public StringConcatenator appendln(StringConcatenator string) + { + StringConcatenator result; + + result = this.append(string).appendln(); + + // + return(result); + } + + /** + * + */ + public void writeInto(java.io.Writer out) throws IOException + { + for (int nString = 0; nString < this.size(); nString++) + { + out.write(this.getByIndex(nString)); + } + } + + + /** + * + */ + public int lenght() + { + int result = 0; + + for (int nString = 0; nString < this.size(); nString++) + { + result += this.getByIndex(nString).length(); + + } + + // + return(result); + } + + + /** + * + */ + public String toString() + { + String result; + + StringBuffer preResult = new StringBuffer(this.lenght()); + + for (int nString = 0; nString < this.size(); nString++) + { + preResult.append(this.getByIndex(nString)); + } + + result = new String(preResult); + + // + return(result); + } + + + /** + * + */ + static public String toString(String[] strings) + { + String result; + + if (strings == null) + { + result = null; + } + else + { + StringConcatenator string = new StringConcatenator(); + + for (int nString = 0; nString < strings.length; nString++) + { + string.append(strings[nString]); + + if (nString < strings.length - 1) + { + string.append(' '); + } + } + + result = string.toString(); + } + + // + return(result); + } + + + /** + * + */ + static public String toStringNotNull(String[] strings) + { + String result; + + result = toString(strings); + + if (result == null) + { + result = ""; + } + + // + return(result); + } + + + /** + * + */ + static public String toStringWithBracket(String[] strings) + { + String result; + + if (strings == null) + { + result = null; + } + else + { + StringConcatenator merge = new StringConcatenator(); + + merge.append("["); + merge.append(toStringWithCommas(strings)); + merge.append("]"); + + result = merge.toString(); + } + + // + return(result); + } + + + /** + * + */ + static public String toStringWithCommas(String[] strings) + { + String result; + + if (strings == null) + { + result = null; + } + else + { + StringConcatenator merge = new StringConcatenator(); + + for (String string : strings) + { + if (merge.size() != 0) + { + merge.append(","); + } + + merge.append(string); + } + + result = merge.toString(); + } + + // + return(result); + } + + + /** + * + */ + static public String toStringWithFrenchCommas(String[] strings) + { + String result; + + if (strings == null) + { + result = null; + } + else + { + StringConcatenator merge = new StringConcatenator(); + + for (String string : strings) + { + if (merge.size() != 0) + { + merge.append(", "); + } + + merge.append(string); + } + + result = merge.toString(); + } + + // + return(result); + } + + + /** + * + */ + static public String toStringWithBrackets(String[] strings) + { + String result; + + if (strings == null) + { + result = null; + } + else + { + StringConcatenator merge = new StringConcatenator(); + + for (String string : strings) + { + merge.append("[").append(string).append("]"); + } + + result = merge.toString(); + } + + // + return(result); + } + + + /** + * + */ + static public String toStringWithBracketNotNull(String[] strings) + { + String result; + + result = toStringWithBrackets(strings); + + if (result == null) + { + result = ""; + } + + // + return(result); + } +} diff --git a/src/fr/devinsy/util/StringList.java b/src/fr/devinsy/util/StringList.java new file mode 100644 index 0000000..bb2f48e --- /dev/null +++ b/src/fr/devinsy/util/StringList.java @@ -0,0 +1,448 @@ +/** + * @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.util; + +import java.io.IOException; +import java.util.ArrayList; + +/** + * This class is a collection of String objects with specific methods. + * It makes possible to build a string without any copy. + * The goal is to optimize the building of strings where they are lot of concatenation action. + */ +public class StringList extends ArrayList +{ + private static final long serialVersionUID = -1154185934830213732L; + public String LINE_SEPARATOR = "\n"; + + /** + * + */ + public StringList () + { + super(); + } + + + /** + * + */ + public StringList (int size) + { + super(size); + } + + + /** + * + */ + public String getByIndex(int id) + { + String result; + + result = (String) this.get(id); + + // + return (result); + } + + + /** + * + */ + public StringList appendln() + { + StringList result; + + this.add(LINE_SEPARATOR); + + result = this; + + // + return(result); + } + + + /** + * Check null parameter before add. + */ + public StringList append(String string) + { + StringList result; + + if (string != null) + { + this.add(string); + } + + result = this; + + // + return(result); + } + + + /** + * + */ + public StringList appendln(String string) + { + StringList result; + + result = this.append(string).appendln(); + + // + return(result); + } + + + /** + * + */ + public StringList append(char character) + { + StringList result; + + this.add(String.valueOf(character)); + + result = this; + + // + return(result); + } + + + /** + * + */ + public StringList appendln(char character) + { + StringList result; + + result = this.append(character).appendln(); + + // + return(result); + } + + + /** + * + */ + public StringList appendln(int value) + { + StringList result; + + result = this.append(String.valueOf(value)).appendln(); + + // + return(result); + } + + + /** + * + */ + public StringList appendln(long value) + { + StringList result; + + result = this.append(String.valueOf(value)).appendln(); + + // + return(result); + } + + + /** + * + */ + public StringList append(StringList string) + { + StringList result; + + if (string != null) + { + for (int nString = 0; nString < string.size(); nString++) + { + this.add(string.getByIndex(nString)); + } + } + + result = this; + + // + return(result); + } + + /** + * + */ + public StringList appendln(StringList string) + { + StringList result; + + result = this.append(string).appendln(); + + // + return(result); + } + + /** + * + */ + public void writeInto(java.io.Writer out) throws IOException + { + for (int nString = 0; nString < this.size(); nString++) + { + out.write(this.getByIndex(nString)); + } + } + + + /** + * + */ + public int lenght() + { + int result = 0; + + for (int nString = 0; nString < this.size(); nString++) + { + result += this.getByIndex(nString).length(); + + } + + // + return(result); + } + + + /** + * + */ + public String toString() + { + String result; + + StringBuffer preResult = new StringBuffer(this.lenght()); + + for (int nString = 0; nString < this.size(); nString++) + { + preResult.append(this.getByIndex(nString)); + } + + result = new String(preResult); + + // + return(result); + } + + + /** + * + */ + public void removeLast() + { + if (this.size() > 0) + { + this.remove(this.size() - 1); + } + } + + + + /** + * + */ + static public String toString(String[] strings) + { + String result; + + if (strings == null) + { + result = null; + } + else + { + StringConcatenator string = new StringConcatenator(); + + for (int nString = 0; nString < strings.length; nString++) + { + string.append(strings[nString]); + + if (nString < strings.length - 1) + { + string.append(' '); + } + } + + result = string.toString(); + } + + // + return(result); + } + + + /** + * + */ + static public String toStringNotNull(String[] strings) + { + String result; + + result = toString(strings); + + if (result == null) + { + result = ""; + } + + // + return(result); + } + + + /** + * + */ + static public String toStringWithBracket(String[] strings) + { + String result; + + if (strings == null) + { + result = null; + } + else + { + StringConcatenator merge = new StringConcatenator(); + + merge.append("["); + merge.append(toStringWithCommas(strings)); + merge.append("]"); + + result = merge.toString(); + } + + // + return(result); + } + + + /** + * + */ + static public String toStringWithCommas(String[] strings) + { + String result; + + if (strings == null) + { + result = null; + } + else + { + StringConcatenator merge = new StringConcatenator(); + + for (String string : strings) + { + if (merge.size() != 0) + { + merge.append(","); + } + + merge.append(string); + } + + result = merge.toString(); + } + + // + return(result); + } + + + /** + * + */ + static public String toStringWithFrenchCommas(String[] strings) + { + String result; + + if (strings == null) + { + result = null; + } + else + { + StringConcatenator merge = new StringConcatenator(); + + for (String string : strings) + { + if (merge.size() != 0) + { + merge.append(", "); + } + + merge.append(string); + } + + result = merge.toString(); + } + + // + return(result); + } + + + /** + * + */ + static public String toStringWithBrackets(String[] strings) + { + String result; + + if (strings == null) + { + result = null; + } + else + { + StringConcatenator merge = new StringConcatenator(); + + for (String string : strings) + { + merge.append("[").append(string).append("]"); + } + + result = merge.toString(); + } + + // + return(result); + } + + + /** + * + */ + static public String toStringWithBracketNotNull(String[] strings) + { + String result; + + result = toStringWithBrackets(strings); + + if (result == null) + { + result = ""; + } + + // + return(result); + } +} diff --git a/src/fr/devinsy/util/StringListWriter.java b/src/fr/devinsy/util/StringListWriter.java new file mode 100644 index 0000000..f2a475d --- /dev/null +++ b/src/fr/devinsy/util/StringListWriter.java @@ -0,0 +1,82 @@ +/** + * @author Christian Momon, March 2010. + * 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.util; + +import java.io.IOException; +import java.io.Writer; + + +/** + * + */ +public class StringListWriter extends Writer +{ + protected StringList out; + + + /** + * + */ + StringListWriter() + { + this.out = new StringList(); + } + + + /** + * + */ + StringListWriter(int size) + { + this.out = new StringList(size); + } + + + /* + * + */ + @Override + public void close() throws IOException + { + + } + + /* + * + */ + @Override + public void flush() throws IOException + { + + } + + /* + * + */ + @Override + public void write(char[] cbuf, int off, int len) throws IOException + { + this.out.append(cbuf.toString().substring(off, len)); + } + + + /* + * + */ + public void write(char c) throws IOException + { + this.out.append(c); + } + + + /* + * + */ + public void write(String string) throws IOException + { + this.out.append(string); + } +} diff --git a/src/fr/devinsy/util/cmdexec/CmdExec.java b/src/fr/devinsy/util/cmdexec/CmdExec.java new file mode 100644 index 0000000..dd3095d --- /dev/null +++ b/src/fr/devinsy/util/cmdexec/CmdExec.java @@ -0,0 +1,453 @@ +package fr.devinsy.util.cmdexec; + +import fr.devinsy.util.StringConcatenator; + + + +/** + * We must use the isOver method on Gobblers because with short tasks the waitFor ends before the Gobbler read. + */ +public class CmdExec +{ + static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (CmdExec.class); + + protected int exitValue; + protected String out; + protected String err; + + + // //////////////////////////////////////////////////////////////////// + // + // //////////////////////////////////////////////////////////////////// + + /** + * + */ + public CmdExec (String command) + { + run (command, StreamGobbler.NONE, StreamGobbler.NONE); + } + + + /** + * + */ + public CmdExec (String ... command) + { + run (command, StreamGobbler.NONE, StreamGobbler.NONE); + } + + + /** + * + */ + public CmdExec (String command, int STDOUT, int STDERR) + { + run (command, STDOUT, STDERR); + } + + + /** + * + */ + public CmdExec (String[] command, int STDOUT, int STDERR) + { + run (command, STDOUT, STDERR); + } + + + /** + * + */ + public CmdExec (String command, StreamGobbler outputGobbler, StreamGobbler errorGobbler) + { + run (command, outputGobbler, errorGobbler); + } + + + /** + * + */ + public CmdExec (String[] command, StreamGobbler outputGobbler, StreamGobbler errorGobbler) + { + run (command, outputGobbler, errorGobbler); + } + + + // //////////////////////////////////////////////////////////////////// + // + // //////////////////////////////////////////////////////////////////// + + /** + * + */ + public int run (String command, int STDOUT, int STDERR) + { + int result; + + result = run (command, + new StreamGobbler ("OUTPUT", STDOUT), + new StreamGobbler ("ERROR", STDERR)); + + // + return (result); + } + + + // + public int run (String[] command, int STDOUT, int STDERR) + { + int result; + + result = run (command, + new StreamGobbler ("OUTPUT", STDOUT), + new StreamGobbler ("ERROR", STDERR)); + + // + return (result); + } + + + /** + * Command: not a shell command, it must be a executable program. + */ + public int run (String[] command, StreamGobbler outputGobbler, StreamGobbler errorGobbler) + { + this.exitValue = 0; + + logger.info ("CmdExec(commande[]) = [" + StringConcatenator.toString(command) + "]"); + logger.info ("CmdExec(commande[]) = [" + StringConcatenator.toStringWithBrackets(command) + "]"); + + try + { + Runtime rt = Runtime.getRuntime (); + + Process proc = rt.exec(command); + + // Any error message? + errorGobbler.setInputStream (proc.getErrorStream ()); + + // Any output? + outputGobbler.setInputStream (proc.getInputStream ()); + + // Kick them off + errorGobbler.start (); + outputGobbler.start (); + + + // Any error??? + this.exitValue = proc.waitFor (); + logger.info("ExitValue: " + exitValue); + + // Sometimes, process ends before Gobblers read its outpout, so we must wait them. + while ((!outputGobbler.isOver ()) || + (!errorGobbler.isOver ())) + { + Thread.sleep (2); + } + + out = outputGobbler.getStream (); + err = errorGobbler.getStream (); + } + catch (Exception exception) + { + this.err = exception.getMessage(); + this.exitValue = -77; + exception.printStackTrace (); + } + + // + return (this.exitValue); + } + + + /** + * + * @param command: not a shell command, it must be a executable program. + * @param outputGobbler + * @param errorGobbler + * @return + */ + public int run (String command, StreamGobbler outputGobbler, StreamGobbler errorGobbler) + { + int result; + + logger.info ("CmdExec(commande) = [" + command + "]"); + + String[] commands = command.split("[ \t\n\r\f]"); + + result = run(commands, outputGobbler, errorGobbler); + + // + return(result); + } + + + /** + * + * @return + */ + public int getExitValue () + { + int result; + + result = this.exitValue; + + return (result); + } + + + /** + * + * @return + */ + public String getOutStream () + { + String result; + + result = this.out; + + // + return (result); + } + + + /** + * + * @return + */ + public String getErrStream () + { + String result; + + result = this.err; + + // + return (result); + } + + // //////////////////////////////////////////////////////////////////// + // + // //////////////////////////////////////////////////////////////////// + /** + * + */ + static public String run (String command) throws Exception + { + String result; + + result = CmdExec.run(command.split("[ \t\n\r\f]")); + + // + return(result); + } + + + /** + * + */ + static public String run (String ... command) throws Exception + { + String result; + + if ((command == null) || (command.length == 0)) + { + throw new Exception("Empty command"); + } + else + { + CmdExec cmd = new CmdExec (command, + StreamGobbler.BUFFER, + StreamGobbler.BUFFER); + + if (cmd.getExitValue() == 0) + { + result = cmd.getOutStream(); + } + else + { + logger.error("Command=\"" + StringConcatenator.toStringWithBrackets(command)); + logger.error("Command=\"[" + StringConcatenator.toString(command) + "]\n out => [" + cmd.getOutStream() + "]\n " + "err => (" + cmd.getErrStream().length () +")[" + cmd.getErrStream() + "]"); + throw new Exception(cmd.getErrStream()); + } + } + + // + return (result); + } + + + /** + * Examples: + * setfacl("setfacl", "-m", "g:cpm:rwX", "/tmp/toto"); + * setfacl("setfacl", "-R", "-m", "g:cpm:rwX", "/tmp/toto"); + */ + static public String run (String program, String[] args, int min, int max) throws Exception + { + String result; + + // + boolean nullArg = false; + boolean ended = false; + int nArg = 0; + while (!ended) + { + if (nArg >= args.length) + { + ended = true; + nullArg = false; + } + else + { + if (args[nArg] == null) + { + ended = true; + nullArg = true; + } + else + { + nArg += 1; + } + } + } + + // + if (program == null) + { + throw new Exception ("Null program parameter detected: [" + program + "]."); + } + else if (nullArg) + { + throw new Exception ("Null parameter detected in position " + nArg + " for " + StringConcatenator.toStringWithBrackets(args) + "."); + } + else if ((args.length < min) || (args.length > max)) + { + throw new Exception ("Bad number of parameters: " + args.length + " for " + StringConcatenator.toStringWithBrackets(args) + "."); + } + else + { + // + String[] command = new String[args.length + 1]; + command[0] = program; + for (nArg = 0; nArg < args.length; nArg++) + { + command[nArg + 1] = args[nArg]; + } + + result = CmdExec.run (command); + } + + // + return(result); + } + + + /** + * Examples: + * setfacl("sudo", "setfacl", "-m", "g:cpm:rwX", "/tmp/toto"); + * setfacl("sudo", "setfacl", "-R", "-m", "g:cpm:rwX", "/tmp/toto"); + */ + static public String run (String program1, String program2, String[] args, int min, int max) throws Exception + { + String result; + + // + boolean nullArg = false; + boolean ended = false; + int nArg = 0; + while (!ended) + { + if (nArg >= args.length) + { + ended = true; + nullArg = false; + } + else + { + if (args[nArg] == null) + { + ended = true; + nullArg = true; + } + else + { + nArg += 1; + } + } + } + + // + if (program1 == null) + { + throw new Exception ("Null program parameter 1 detected: [" + program1 + "]."); + } + else if (program2 == null) + { + throw new Exception ("Null program parameter 2 detected: [" + program2 + "]."); + } + else if (nullArg) + { + throw new Exception ("Null parameter detected in position " + nArg + " for " + StringConcatenator.toStringWithBrackets(args) + "."); + } + else if ((args.length < min) || (args.length > max)) + { + throw new Exception ("Bad number of parameters: " + args.length + " for " + StringConcatenator.toStringWithBrackets(args) + "."); + } + else + { + // + String[] command = new String[args.length + 2]; + command[0] = program1; + command[1] = program2; + for (nArg = 0; nArg < args.length; nArg++) + { + command[nArg + 2] = args[nArg]; + } + + result = CmdExec.run (command); + } + + // + return(result); + } + + + /** + * + */ + static public String multirun (String ... commands) throws Exception + { + String result; + + result = ""; + + boolean ended = false; + int commandCounter = 0; + while (!ended) + { + if (commandCounter < commands.length) + { + String command = commands[commandCounter]; + + if ((command == null) || (command.length () == 0)) + { + result = null; + commandCounter += 1; + } + else + { + result += CmdExec.run (command); + commandCounter += 1; + } + } + else + { + ended = true; + result = null; + } + } + + // + return (result); + } +} diff --git a/src/fr/devinsy/util/cmdexec/StreamGobbler.java b/src/fr/devinsy/util/cmdexec/StreamGobbler.java new file mode 100644 index 0000000..37b9af6 --- /dev/null +++ b/src/fr/devinsy/util/cmdexec/StreamGobbler.java @@ -0,0 +1,142 @@ +package fr.devinsy.util.cmdexec; + +import java.io.*; + + +/** + * + */ +public class StreamGobbler extends Thread +{ + static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (CmdExec.class); + + static final public int NONE = 0; + static final public int PRINT = 1; + static final public int BUFFER = 2; + + protected InputStream is; + protected String type; + protected int streamWay; + protected StringBuffer stream; + protected boolean isOverStatus; // Important if the caller wants have complete stream in case of very short command. + + + // + StreamGobbler () + { + this.type = ""; + this.streamWay = NONE; + this.stream = new StringBuffer (); + this.isOverStatus = false; + } + + + // + StreamGobbler (String type, int streamWay) + { + this.type = type; + this.streamWay = streamWay; + this.stream = new StringBuffer (); + this.isOverStatus = false; + } + + + // + StreamGobbler (InputStream is, String type) + { + this.is = is; + this.type = type; + this.streamWay = NONE; + this.stream = new StringBuffer (); + this.isOverStatus = false; + } + + + // + StreamGobbler (InputStream is, String type, int streamWay) + { + this.is = is; + this.type = type; + this.streamWay = streamWay; + this.stream = new StringBuffer (); + this.isOverStatus = false; + } + + + // + public void setInputStream (InputStream is) + { + this.is = is; + } + + + // + public void run () + { + try + { + InputStreamReader isr = new InputStreamReader (is); + BufferedReader br = new BufferedReader (isr); + String line = null; + if (this.streamWay == NONE) + { + while ((line = br.readLine ()) != null); + } + else if (this.streamWay == PRINT) + { + while ((line = br.readLine ()) != null) + { + System.out.println (type + ">" + line); + } + } + else if (this.streamWay == BUFFER) + { + while ((line = br.readLine ()) != null) + { + stream.append (line + "\n"); + } + } + else + { + logger.warn("unknow way for stream"); + } + } + catch (IOException ioe) + { + ioe.printStackTrace (); + } + + this.isOverStatus = true; + } + + + // + public String getStream () + { + String result; + + if (this.stream != null) + { + result = this.stream.toString (); + } + else + { + result = null; + } + + // + return (result); + } + + + // + public boolean isOver () + { + boolean result; + + result = this.isOverStatus; + + // + return (result); + } +} diff --git a/src/fr/devinsy/util/cmdexec/Wrapper.java b/src/fr/devinsy/util/cmdexec/Wrapper.java new file mode 100644 index 0000000..9e4ce55 --- /dev/null +++ b/src/fr/devinsy/util/cmdexec/Wrapper.java @@ -0,0 +1,69 @@ +package fr.devinsy.util.cmdexec; + +import java.io.*; + + +/** + * + */ +public class Wrapper +{ + static private final Wrapper instance = new Wrapper (); + static private org.apache.log4j.Logger logger; + + static + { + logger = org.apache.log4j.Logger.getLogger (Wrapper.class); + } + + /** + * return instance of the controller + */ + public static Wrapper instance () + { + return (instance); + } + + + /** + * + */ + static public void wrap (String ressource, PrintWriter output) throws IOException + { + logger.info ("Enter"); + + BufferedReader buf = new BufferedReader (new FileReader (ressource)); + String ligne; + while ((ligne = buf.readLine()) != null) + { + output.print (ligne); + } + + logger.info ("Exit"); + } + + + /** + * + */ + static public StringBuffer wrap (String ressource) throws IOException + { + logger.info ("Enter"); + StringBuffer result; + + result = new StringBuffer (); + + BufferedReader buf = new BufferedReader (new FileReader (ressource)); + String ligne; + while ((ligne = buf.readLine()) != null) + { + result.append (ligne + "\n"); + } + + // + logger.info ("Exit"); + return (result); + } +} + +// //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/util/unix/CachedFile.java b/src/fr/devinsy/util/unix/CachedFile.java new file mode 100644 index 0000000..7e24730 --- /dev/null +++ b/src/fr/devinsy/util/unix/CachedFile.java @@ -0,0 +1,124 @@ +package fr.devinsy.util.unix; + +import java.io.*; + + + +/** + * + */ +public class CachedFile +{ + static private org.apache.log4j.Logger logger; + static + { + logger = org.apache.log4j.Logger.getLogger (CachedFile.class); + } + + public enum Status {NOT_LOAD, EXPIRED, UPDATED}; + + protected String sourceName; + protected long sourceTime; + protected Status status; + + /** + * + */ + public CachedFile (String fileName) + { + this.sourceName = fileName; + this.sourceTime = 0; + this.status = Status.NOT_LOAD; + } + + + /** + * + */ + protected File getSourceFile () + { + File result; + + if (this.sourceName == null) + { + result = null; + } + else + { + File source = new File (this.sourceName); + + if (source == null) + { + logger.error ("source file not defined (" + this.sourceName + ")"); + result = null; + } + else if (!source.exists ()) + { + logger.error ("source file defined but not found"); + result = null; + } + else + { + result = source; + } + } + + // + return (result); + } + + + /** + * + */ + protected Status getStatus () + { + Status result; + + File source = getSourceFile (); + + if (source == null) + { + this.status = Status.NOT_LOAD; + } + else if (this.sourceTime != source.lastModified ()) + { + this.status = Status.EXPIRED; + } + + result = this.status; + + // + return (result); + } + + + /** + * + */ + public void setUpdated () + { + File source = getSourceFile (); + + if (source == null) + { + this.status = Status.NOT_LOAD; + } + else + { + this.sourceTime = source.lastModified (); + this.status = Status.UPDATED; + } + } + + + /** + * + */ + public void setNotLoad () + { + this.status = Status.NOT_LOAD; + } +} + +// //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/util/unix/EtcGroupFile.java b/src/fr/devinsy/util/unix/EtcGroupFile.java new file mode 100644 index 0000000..7dae46c --- /dev/null +++ b/src/fr/devinsy/util/unix/EtcGroupFile.java @@ -0,0 +1,198 @@ +package fr.devinsy.util.unix; + + +import java.util.*; + + +/** + * + */ +public class EtcGroupFile extends CachedFile +{ + static private org.apache.log4j.Logger logger; + static + { + logger = org.apache.log4j.Logger.getLogger (EtcGroupFile.class); + } + + static EtcGroupFile instance; + static + { + instance = null; + } + + protected Groups groups; + + /** + * + */ + protected EtcGroupFile () + { + super ("/etc/group"); + this.groups = null; + } + + + /** + * + */ + static public EtcGroupFile instance () + { + EtcGroupFile result; + + if (EtcGroupFile.instance == null) + { + EtcGroupFile.instance = new EtcGroupFile (); + } + + result = EtcGroupFile.instance; + + // + return (result); + } + + + /** + * + */ + protected Groups updatedGroups () + { + Groups result; + + if (getStatus () != Status.UPDATED) + { + this.groups = EtcGroupFileReader.load (); + + if (this.groups == null) + { + setNotLoad (); + } + else + { + setUpdated (); + } + } + + result = this.groups; + + // + return (result); + } + + + /** + * + */ + public Group get (String name) + { + Group result; + + Groups groups = updatedGroups (); + + if (groups == null) + { + result = null; + } + else + { + result = groups.getByName (name); + } + + // + return (result); + } + + + /** + * + */ + public Group get (int gid) + { + Group result; + + Groups groups = updatedGroups (); + + if (groups == null) + { + result = null; + } + else + { + result = groups.getByGid (gid); + } + + // + return (result); + } + + + /* + * + */ + public boolean contains (String name) + { + boolean result; + + Groups groups = updatedGroups (); + + if (groups == null) + { + result = false; + } + else + { + result = groups.contains (name); + } + + // + return (result); + } + + + /** + * + */ + public Vector getLoginGroups (String login) + { + Vector result; + + Groups groups = updatedGroups (); + + result = groups.getLoginGroups (login); + + // + return (result); + } + + /** + * + */ + public String getLoginGroupsString (String login) + { + String result; + + groups = updatedGroups (); + + result = groups.getLoginGroupsString (login); + + // + return (result); + } + + + + /** + * + */ + public String toString () + { + String result; + + result = this.groups.toString (); + + // + return (result); + } +} + +// //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/util/unix/EtcGroupFileReader.java b/src/fr/devinsy/util/unix/EtcGroupFileReader.java new file mode 100644 index 0000000..4e3cd39 --- /dev/null +++ b/src/fr/devinsy/util/unix/EtcGroupFileReader.java @@ -0,0 +1,81 @@ +package fr.devinsy.util.unix; + +import java.io.*; + + + +/** + * + */ +public class EtcGroupFileReader +{ + static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (EtcGroupFileReader.class); + + + /** + * + */ + static public Groups load () + { + Groups result; + + BufferedReader file; + + try + { + file = new BufferedReader (new FileReader ("/etc/group")); + } + catch(FileNotFoundException exception) + { + logger.error ("File not found"); + file = null; + } + + if (file == null) + { + result = null; + } + else + { + result = new Groups (); + + try + { + String line; + while ((line = file.readLine ()) != null) + { + String[] tokens = line.split (":"); + + Group group = new Group (); + group.setName (tokens[0]); + group.setPassword (tokens[1]); + group.setGid ((new Integer (tokens[2])).intValue ()); + + // Manage the case of empty shell. + if (tokens.length == 4) + { + String[] tokensBis = tokens[3].split (","); + + for (int tokenCounter = 0; tokenCounter < tokensBis.length; tokenCounter++) + { + group.addMember (tokensBis[tokenCounter]); + } + } + result.add (group); + } + + file.close(); + } + catch (java.io.IOException exception) + { + logger.error ("Exception here."); + result = null; + } + } + + // + return (result); + } +} + +// //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/util/unix/EtcPasswdFile.java b/src/fr/devinsy/util/unix/EtcPasswdFile.java new file mode 100644 index 0000000..156eb59 --- /dev/null +++ b/src/fr/devinsy/util/unix/EtcPasswdFile.java @@ -0,0 +1,173 @@ +package fr.devinsy.util.unix; + + + +/** + * + */ +public class EtcPasswdFile extends CachedFile +{ + static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (EtcPasswdFile.class); + + static EtcPasswdFile instance = null; + protected Users users; + + + /** + * + */ + protected EtcPasswdFile () + { + super ("/etc/passwd"); + this.users = null; + } + + + /** + * + */ + static public EtcPasswdFile instance () + { + EtcPasswdFile result; + + if (EtcPasswdFile.instance == null) + { + EtcPasswdFile.instance = new EtcPasswdFile (); + } + + result = EtcPasswdFile.instance; + + // + return (result); + } + + + /** + * + */ + protected Users update () + { + Users result; + + logger.debug ("updating"); + this.users = EtcPasswdFileReader.load (); + + if (this.users == null) + { + setNotLoad (); + } + else + { + setUpdated (); + } + + result = this.users; + + // + return (result); + } + + + /** + * + */ + protected Users updatedUsers () + { + Users result; + + if (getStatus () != Status.UPDATED) + { + update(); + } + + result = this.users; + + // + return (result); + } + + + /** + * + */ + public User get (String login) + { + User result; + + Users users = updatedUsers (); + + if (users == null) + { + result = null; + } + else + { + result = users.getByLogin (login); + } + + // + return (result); + } + + + /** + * + */ + public User get (int uid) + { + User result; + + Users users = updatedUsers (); + + if (users == null) + { + result = null; + } + else + { + result = users.getByUid (uid); + } + + // + return (result); + } + + + /* + * + */ + public boolean contains (String login) + { + boolean result; + + Users users = updatedUsers (); + + if (users == null) + { + result = false; + } + else + { + result = users.contains (login); + } + + // + return (result); + } + + + /** + * + */ + public String toString () + { + String result; + + result = this.users.toString (); + + // + return (result); + } +} + +// //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/util/unix/EtcPasswdFileReader.java b/src/fr/devinsy/util/unix/EtcPasswdFileReader.java new file mode 100644 index 0000000..1e09f7d --- /dev/null +++ b/src/fr/devinsy/util/unix/EtcPasswdFileReader.java @@ -0,0 +1,84 @@ +package fr.devinsy.util.unix; + +import java.io.*; + + + +/** + * + */ +public class EtcPasswdFileReader +{ + static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (EtcPasswdFileReader.class); + + + /** + * + */ + static public Users load () + { + Users result; + + BufferedReader file; + + try + { + file = new BufferedReader (new FileReader ("/etc/passwd")); + } + catch(FileNotFoundException exception) + { + logger.error ("File not found"); + file = null; + } + + if (file == null) + { + result = null; + } + else + { + result = new Users (); + + try + { + String line; + while ((line = file.readLine ()) != null) + { + String[] tokens = line.split (":"); + + User user = new User (); + user.setLogin (tokens[0]); + user.setPassword (tokens[1]); + user.setUid ((new Integer (tokens[2])).intValue ()); + user.setGid ((new Integer (tokens[3])).intValue ()); + user.setRealName (tokens[4]); + user.setHomeDirectory (tokens[5]); + + // Manage the case of empty shell. + if (tokens.length == 7) + { + user.setShell (tokens[6]); + } + else + { + user.setShell (""); + } + + result.add (user); + } + + file.close(); + } + catch (java.io.IOException exception) + { + logger.error ("Exception here."); + result = null; + } + } + + // + return (result); + } +} + +// //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/util/unix/Group.java b/src/fr/devinsy/util/unix/Group.java new file mode 100644 index 0000000..5973730 --- /dev/null +++ b/src/fr/devinsy/util/unix/Group.java @@ -0,0 +1,215 @@ +package fr.devinsy.util.unix; + + +import java.util.*; + + +/** + * + */ +public class Group +{ + static private org.apache.log4j.Logger logger; + + static + { + logger = org.apache.log4j.Logger.getLogger (Group.class); + } + + /* + * /usr/include/grp.h + * + * The group structure. + * struct group + * { + * char *gr_name; Group name. + * char *gr_passwd; Password. + * __gid_t gr_gid; Group ID. + * char **gr_mem; Member list. + * }; + */ + + + protected String name; + protected String password; + protected int gid; + protected Vector members; + + + /** + * + */ + public Group () + { + this.name = null; + this.password = null; + this.gid = -1; + this.members = new Vector (); + } + + + + /** + * + */ + public void addMember (String login) + { + if ((login != null) && (login.length () != 0)) + { + this.members.add (login); + } + } + + /** + * + */ + public int getGid () + { + int result; + + result = this.gid; + + // + return (result); + } + + /** + * + */ + public int gid () + { + int result; + + result = this.gid; + + // + return (result); + } + + /** + * + */ + public Vector getMembers () + { + Vector result; + + result = this.members; + + // + return (result); + } + + + /** + * + */ + public Vector members () + { + Vector result; + + result = this.members; + + // + return (result); + } + + + /** + * + */ + public String getName () + { + String result; + + result = this.name; + + // + return (result); + } + + /** + * + */ + public String name () + { + String result; + + result = this.name; + + // + return (result); + } + + /** + * + */ + public String passwd () + { + String result; + + result = this.password; + + // + return (result); + } + + /** + * + */ + public String getPassword () + { + String result; + + result = this.password; + + // + return (result); + } + + /** + * + */ + public void setGid (int gid) + { + this.gid = gid; + } + + /** + * + */ + public void setName (String name) + { + this.name = name; + } + + /** + * + */ + public void setPasswd (String password) + { + this.password = password; + } + + /** + * + */ + public void setPassword (String password) + { + this.password = password; + } + + /** + * + */ + public String toString () + { + String result; + + result = "|" + this.name + "|" + this.password + "|" + this.gid + "|" + this.members + "|"; + + // + return (result); + } +} + +// //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/util/unix/Groups.java b/src/fr/devinsy/util/unix/Groups.java new file mode 100644 index 0000000..2b83bd2 --- /dev/null +++ b/src/fr/devinsy/util/unix/Groups.java @@ -0,0 +1,226 @@ +package fr.devinsy.util.unix; + + +import java.util.*; + + +/** + * + */ +public class Groups extends Vector +{ + + private static final long serialVersionUID = 5802487312198869603L; + static private org.apache.log4j.Logger logger; + + static + { + logger = org.apache.log4j.Logger.getLogger (Groups.class); + } + + + /** + * + */ + public Groups () + { + super (); + } + + + /** + * + */ + public Group getByName (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.getName ().equals (name)) + { + ended = true; + result = group; + } + } + else + { + ended = true; + result = null; + } + } + } + + // + return (result); + } + + + /** + * + */ + public Group getByGid (int gid) + { + Group result; + + result = null; + boolean ended = false; + Iterator iterator = this.iterator (); + while (!ended) + { + if (iterator.hasNext ()) + { + Group group = iterator.next (); + if (group.getGid () == gid) + { + ended = true; + result = group; + } + } + else + { + ended = true; + result = null; + } + } + + // + return (result); + } + + + /* + * + */ + public boolean contains (String name) + { + boolean result; + + if (getByName (name) == null) + { + result = false; + } + else + { + result = true; + } + + // + return (result); + } + + + /* + * + */ + public boolean contains (int gid) + { + boolean result; + + if (getByGid (gid) == 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.getName ()); + } + } + + // + 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); + } +} + +// //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/util/unix/Unix.java b/src/fr/devinsy/util/unix/Unix.java new file mode 100644 index 0000000..9872da0 --- /dev/null +++ b/src/fr/devinsy/util/unix/Unix.java @@ -0,0 +1,607 @@ +package fr.devinsy.util.unix; + + +import java.io.File; +import java.util.Vector; + +import fr.devinsy.util.StringConcatenator; +import fr.devinsy.util.cmdexec.CmdExec; +import fr.devinsy.util.cmdexec.StreamGobbler; +import fr.devinsy.util.unix.acl.Acl; +import fr.devinsy.util.unix.acl.AclManager; + + + +/** + * + */ +public class Unix +{ + static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (Unix.class); + static public final String SUDO = "/usr/bin/sudo"; + + + /** + * + */ + static public boolean isLogin (String login) + { + boolean result; + + result = EtcPasswdFile.instance().contains(login); + + // + return (result); + } + + + /** + * + */ + static public boolean isGroup (String groupName) + { + boolean result; + + result = EtcGroupFile.instance().contains(groupName); + + // + return (result); + } + + + /** + * + */ + static public User searchLogin(String login) + { + User result; + + result = EtcPasswdFile.instance ().get (login); + + // + return (result); + } + + + /** + * + */ + static public Group searchGroup (String groupName) + { + Group result; + + result = EtcGroupFile.instance ().get(groupName); + + // + return (result); + } + + + /** + * + */ + static public Vector searchLoginGroups (String login) + { + Vector result; + + result = EtcGroupFile.instance ().getLoginGroups (login); + + // + return (result); + } + + + /** + * chfn [ -f full-name ] [ username ] + */ + static public void setRealName (String login, String newRealName) throws Exception + { + if ((login == null) || (login.length () == 0)) + { + throw new Exception ("Login parameter undefined."); + } + else if (newRealName == null) + { + throw new Exception ("New real name parameter undefined."); + } + else + { + try + { + logger.info ("Real name changing for user [" + login + "]."); + CmdExec.run (SUDO, "chfn", "-f", newRealName, login); + EtcPasswdFile.instance().update(); + logger.info ("Real name changed for user [" + login + "]."); + } + catch (Exception exception) + { + throw new Exception ("Error detected on setting of the new real name for [" + login + "].", exception); + } + } + } + + + /** + * + */ + static public void setPassword (String login, String newPassword) throws Exception + { + if ((login == null) || (login.length () == 0)) + { + throw new Exception ("Login parameter undefined."); + } + else if (newPassword == null) + { + throw new Exception ("New password parameter undefined."); + } + else + { + try + { + logger.info ("Password setting for [" + login + "]."); + CmdExec.run (SUDO, "bash", "-c", "echo \"" + newPassword + "\"| passwd " + login + " --stdin"); + logger.info ("Password set for [" + login + "]."); + } + catch (Exception exception) + { + throw new Exception ("Error detected on setting of the new password for [" + login + "].", exception); + } + } + } + + + /** + * + */ + static public void createUserAccount (String login) throws Exception + { + if ((login == null) || (login.length () == 0)) + { + throw new Exception ("Login parameter undefined."); + } + else + { + createUserAccount(login, login); + } + } + + + /** + * + */ + static public void createUserAccount (String login, String name) throws Exception + { + if ((login == null) || (login.length () == 0)) + { + throw new Exception ("Login parameter undefined."); + } + else if ((name == null) || (name.length () == 0)) + { + throw new Exception ("Name parameter undefined."); + } + else + { + createUserAccount(login, name, "/home/" + login); + } + } + + + /** + * + */ + static public void createUserAccount (String login, String name, String home) throws Exception + { + if ((login == null) || (login.length () == 0)) + { + throw new Exception ("Login parameter undefined."); + } + else if ((name == null) || (name.length () == 0)) + { + throw new Exception ("Name parameter undefined."); + } + else if ((home == null) || (home.length () == 0)) + { + throw new Exception ("Home parameter undefined."); + } + else + { + try + { + logger.info ("Creating user account for [" + login + "]."); + CmdExec.run (SUDO, "/usr/sbin/useradd", "-c", name, "-d", home, login); + EtcPasswdFile.instance().update(); + logger.info ("User account created for [" + login + "]."); + } + catch(Exception exception) + { + throw new Exception ("Error detected creating user account [" + login + "].", exception); + } + } + } + + + /** + * + */ + static public void createUserAccount (String login, String name, String home, String password) throws Exception + { + if ((password == null) || (password.length () == 0)) + { + throw new Exception ("Password parameter undefined."); + } + else if (Unix.isLogin(login)) + { + throw new Exception ("Login [" + login + "] already in use"); + } + else + { + createUserAccount(login, name, home); + setPassword(login, password); + } + } + + + /** + * + */ + static public void deleteUserAccount (String login) throws Exception + { + if ((login == null) || (login.length() == 0)) + { + throw new Exception ("Login parameter undefined."); + } + else + { + try + { + logger.info ("Deleting user account for [" + login + "]."); + CmdExec.run (SUDO + " /usr/sbin/userdel " + login); + logger.info ("User account delted for [" + login + "]."); + } + catch (Exception exception) + { + throw new Exception ("Error running userdel command for login [" + login + "].", exception); + } + } + } + + + /** + * + */ + static public void deleteGroup (String group) throws Exception + { + if ((group == null) || (group.length() == 0)) + { + throw new Exception ("Group parameter undefined."); + } + else + { + try + { + logger.info ("Deleting group for [" + group + "]."); + CmdExec.run (SUDO + " groupdel " + group); + logger.info ("Group deleted for [" + group + "]."); + } + catch (Exception exception) + { + throw new Exception ("Error running groupdel command for group [" + group + "].", exception); + } + } + } + + + /** + * + */ + static public void modifyLogin (String sourceLogin, String targetLogin, String sourceHomeDirectory) throws Exception + { + logger.info ("Starting login modifying: [" + sourceLogin + "] -> [" + targetLogin + "]"); + if ((sourceLogin == null) || (sourceLogin.length () == 0)) + { + throw new Exception ("Original login parameters undefined"); + } + else if ((targetLogin == null) || (targetLogin.length () == 0)) + { + throw new Exception ("New login parameters undefined"); + } + else if (!Unix.isLogin(sourceLogin)) + { + throw new Exception ("Original login unknow: [" + sourceLogin + "]."); + } + else if (Unix.isLogin(targetLogin)) + { + throw new Exception ("New login unknow: [" + targetLogin + "]."); + } + else if (sourceHomeDirectory == null) + { + throw new Exception ("sourceHomeDirectory parameter undefined, thus no home directory move."); + } + else if (!new File(sourceHomeDirectory).exists()) + { + throw new Exception("Source home directory does not exist: [" + sourceHomeDirectory + "]."); + } + else + { + String targetHomeDirectory = new File(sourceHomeDirectory).getParent().toString() + "/" + targetLogin; + if (new File(targetHomeDirectory).exists()) + { + throw new Exception("Target home directory already exists: [" + targetHomeDirectory + "]."); + } + else + { + try + { + logger.info ("Login modifying: [" + sourceLogin + "] -> [" + targetLogin + "]"); + CmdExec.run (SUDO + " usermod -l "+ targetLogin + " " + sourceLogin); + logger.info ("Login modified: [" + sourceLogin + "] -> [" + targetLogin + "]"); + } + catch (Exception exception) + { + throw new Exception ("Login modification failed for [" + sourceLogin + "].", exception); + } + + try + { + logger.info ("Renaming home directory: [" + sourceHomeDirectory + "] -> [" + targetLogin + "]"); + CmdExec.run (SUDO + " mv " + sourceHomeDirectory + " " + targetHomeDirectory); + logger.info ("Home directory renamed: [" + sourceHomeDirectory + "] -> [" + targetLogin + "]"); + } + catch (Exception exception) + { + throw new Exception ("Home directory rename failed for [" + sourceHomeDirectory + "].", exception); + } + } + } + logger.info ("Login modifying done: [" + sourceLogin + "] -> [" + targetLogin + "]"); + } + + + /** + * + */ + static public void renameGroup (String sourceGroup, String targetGroup) throws Exception + { + logger.info ("Starting group renaming: [" + sourceGroup + "] -> [" + targetGroup + "]"); + if ((sourceGroup == null) || (sourceGroup.length () == 0)) + { + throw new Exception ("Original group name parameters undefined"); + } + else if ((targetGroup == null) || (targetGroup.length () == 0)) + { + throw new Exception ("New group name parameters undefined"); + } + else if (!Unix.isGroup(sourceGroup)) + { + throw new Exception ("Original group unknow: [" + sourceGroup + "]."); + } + else if (Unix.isGroup(targetGroup)) + { + throw new Exception ("New group unknow: [" + targetGroup + "]."); + } + else + { + try + { + logger.info ("Login modifying: [" + sourceGroup + "] -> [" + targetGroup + "]"); + CmdExec.run (SUDO + " groupmod -n "+ targetGroup + " " + sourceGroup); + logger.info ("Login modified: [" + sourceGroup + "] -> [" + targetGroup + "]"); + } + catch (Exception exception) + { + throw new Exception ("Group renaming failed for [" + sourceGroup + "].", exception); + } + } + logger.info ("Group renaming done: [" + sourceGroup + "] -> [" + targetGroup + "]"); + } + + + /** + * + */ + static public void recursiveChmod (String changes, String path) throws Exception + { + if ((changes == null) || (changes.length() == 0) || + (path == null) || (path.length() == 0)) + { + throw new Exception ("Parameter undefined: [" + changes + "][" + path + "]."); + } + else if (!new File(path).exists()) + { + throw new Exception ("Path not found: [" + path + "]."); + } + else + { + try + { + CmdExec.run (SUDO, "chmod", "-R", changes, path); + } + catch (Exception exception) + { + throw new Exception ("Error running recursive chmod command for [" + changes + "][" + path + "].", exception); + } + } + } + + /** + * + */ + static public void chmod (String changes, String path) throws Exception + { + if ((changes == null) || (changes.length() == 0) || + (path == null) || (path.length() == 0)) + { + throw new Exception ("Parameter undefined: [" + changes + "][" + path + "]."); + } + else if (!new File(path).exists()) + { + throw new Exception ("Path not found: [" + path + "]."); + } + else + { + try + { + CmdExec.run (SUDO, "chmod", changes, path); + } + catch (Exception exception) + { + throw new Exception ("Error running chmod command for [" + changes + "][" + path + "].", exception); + } + } + } + + + /** + * + */ + static public void setfacl (String ... args) throws Exception + { + try + { + CmdExec.run(SUDO, "setfacl", args, 1, 6); + } + catch (Exception exception) + { + throw new Exception ("Error running setfacl command for " + StringConcatenator.toStringWithBrackets(args) + ":" + exception.getMessage() + ".", exception); + } + } + + + /** + * + */ + static public String getAclData (String filePathName) throws Exception + { + String result; + + result = AclManager.getAclData(filePathName); + + // + return(result); + } + + + /** + * + */ + static public String[] getAclUsers (String filePathName) throws Exception + { + String[] result; + + Acl acl = AclManager.getAcl(filePathName); + + result = acl.currentAcl().getUserIds(); + + // + return(result); + } + + + /** + * + */ + static public void appendToFile (String text, String path) throws Exception + { + if ((text == null) || (text.length() == 0) || + (path == null) || (path.length() == 0)) + { + throw new Exception ("Parameter undefined: [" + text + "][" + path + "]."); + } + else + { + try + { + CmdExec.run (SUDO, "bash", "-c", "echo \"" + text + "\" >> " + path); + } + catch (Exception exception) + { + throw new Exception ("Error detected appending text to file [" + path + "].", exception); + } + } + } + + + /** + * + */ + static public void link (String sourcePath, String targetPath) throws Exception + { + logger.info("[" + sourcePath + "][" + targetPath + "]"); + if ((sourcePath == null) || (sourcePath.length() == 0) || + (targetPath == null) || (targetPath.length() == 0)) + { + throw new Exception ("Parameter undefined: [" + sourcePath + "][" + targetPath + "]."); + } + else + { + File sourceFile = new File (sourcePath); + File targetFile = new File (targetPath); + + if (!sourceFile.exists()) + { + throw new Exception ("Source does not exist: [" + sourcePath + "]."); + } + else if ((targetFile.exists()) && (!targetFile.isDirectory())) + { + throw new Exception ("Target already exists: [" + targetPath + "]."); + } + else + { + try + { + CmdExec.run (SUDO, "ln", "-s", sourcePath, targetPath); + } + catch (Exception exception) + { + throw new Exception ("Error detected linking [" + sourcePath + "][" + targetPath + "].", exception); + } + } + } + } + + + /** + * + */ + static public void unlink (String filePathName) throws Exception + { + logger.info("[" + filePathName + "]"); + if (filePathName == null) + { + throw new Exception ("Parameter undefined: [" + filePathName + "]."); + } + else + { + new File(filePathName).delete(); + } + } + + + /** + * + */ + static public void clearAclUser (String login, String filePathName) throws Exception + { + AclManager.clearUser(login, filePathName); + } + + + /** + * + */ + static public void clearAclGroup (String group, String filePathName) throws Exception + { + AclManager.clearGroup(group, filePathName); + } + + + /** + * + */ + static public void clearAcl (String id, String filePathName) throws Exception + { + AclManager.clearId(id, filePathName); + } +} + + // //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/util/unix/User.java b/src/fr/devinsy/util/unix/User.java new file mode 100644 index 0000000..a8fd43d --- /dev/null +++ b/src/fr/devinsy/util/unix/User.java @@ -0,0 +1,346 @@ +package fr.devinsy.util.unix; + + + + +/** + * + */ +public class User +{ + static private org.apache.log4j.Logger logger; + + static + { + logger = org.apache.log4j.Logger.getLogger (User.class); + } + + /* + * /usr/include/pwd.h + * + * The passwd structure. + * struct passwd + * { + * char *pw_name;D Username. + * char *pw_passwd; Password. + * __uid_t pw_uid; User ID. + * __gid_t pw_gid; Group ID. + * char *pw_gecos; Real name. + * char *pw_dir; Home directory. + * char *pw_shell; Shell program. + * }; + */ + + protected String login; + protected String password; + protected int uid; + protected int gid; + protected String realName; + protected String homeDirectory; + protected String shell; + + + /** + * + */ + public User () + { + this.login = null; + this.password = null; + this.uid = -1; + this.gid = -1; + this.realName = null; + this.homeDirectory = null; + this.shell = null; + } + + + /** + * + */ + public User (User user) + { + this.login = user.login(); + this.password = user.passwd(); + this.uid = user.uid(); + this.gid = user.gid(); + this.realName = user.realName(); + this.homeDirectory = user.homeDirectory(); + this.shell = user.shell(); + } + + + /** + * + */ + public int getGid () + { + int result; + + result = this.gid; + + // + return (result); + } + + /** + * + */ + public int gid () + { + int result; + + result = this.gid; + + // + return (result); + } + + /** + * + */ + public String getHomeDirectory () + { + String result; + + result = this.homeDirectory; + + // + return (result); + } + + /** + * + */ + public String homeDirectory () + { + String result; + + result = this.homeDirectory; + + // + return (result); + } + + /** + * + */ + public String getLogin () + { + String result; + + result = this.login; + + // + return (result); + } + + /** + * + */ + public String login () + { + String result; + + result = this.login; + + // + return (result); + } + + /** + * + */ + public String getPasswd () + { + String result; + + result = this.password; + + // + return (result); + } + + /** + * + */ + public String passwd () + { + String result; + + result = this.password; + + // + return (result); + } + + /** + * + */ + public String getPassword () + { + String result; + + result = this.password; + + // + return (result); + } + + /** + * + */ + public String getRealName () + { + String result; + + result = this.realName; + + // + return (result); + } + + /** + * + */ + public String realName () + { + String result; + + result = this.realName; + + // + return (result); + } + + /** + * + */ + public String getShell () + { + String result; + + result = this.shell; + + // + return (result); + } + + /** + * + */ + public String shell () + { + String result; + + result = this.shell; + + // + return (result); + } + + /** + * + */ + public int getUid () + { + int result; + + result = this.uid; + + // + return (result); + } + + /** + * + */ + public int uid () + { + int result; + + result = this.uid; + + // + return (result); + } + + /** + * + */ + public void setHomeDirectory (String homeDirectory) + { + this.homeDirectory = homeDirectory; + } + + /** + * + */ + public void setGid (int gid) + { + this.gid = gid; + } + + /** + * + */ + public void setLogin (String login) + { + this.login = login; + } + + /** + * + */ + public void setPasswd (String password) + { + this.password = password; + } + + /** + * + */ + public void setPassword (String password) + { + this.password = password; + } + + /** + * + */ + public void setRealName (String realName) + { + this.realName = realName; + } + + /** + * + */ + public void setShell (String shell) + { + this.shell = shell; + } + + /** + * + */ + public void setUid (int uid) + { + this.uid = uid; + } + + /** + * + */ + public String toString () + { + String result; + + result = "|" + this.login + "|" + this.password + "|" + this.uid + "|" + this.gid + "|" + this.realName + "|" + this.homeDirectory + "|" + this.shell + "|"; + + // + return (result); + } +} + +// //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/util/unix/Users.java b/src/fr/devinsy/util/unix/Users.java new file mode 100644 index 0000000..4af0c37 --- /dev/null +++ b/src/fr/devinsy/util/unix/Users.java @@ -0,0 +1,172 @@ +package fr.devinsy.util.unix; + + +import java.util.*; + + +/** + * + */ +public class Users extends Vector +{ + private static final long serialVersionUID = -7178304512851592399L; + static private org.apache.log4j.Logger logger; + + static + { + logger = org.apache.log4j.Logger.getLogger (Users.class); + } + + + /** + * + */ + 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.getLogin ().equals (login)) + { + ended = true; + result = user; + } + } + else + { + ended = true; + result = null; + } + } + } + + // + return (result); + } + + + /** + * + */ + public User getByUid (int uid) + { + User result; + + result = null; + boolean ended = false; + Iterator iterator = this.iterator (); + while (!ended) + { + if (iterator.hasNext ()) + { + User user = iterator.next (); + if (user.getUid () == uid) + { + 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 boolean contains (int uid) + { + boolean result; + + if (getByUid (uid) == 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); + } +} + +// //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/util/unix/acl/Acl.java b/src/fr/devinsy/util/unix/acl/Acl.java new file mode 100644 index 0000000..e6e5b31 --- /dev/null +++ b/src/fr/devinsy/util/unix/acl/Acl.java @@ -0,0 +1,211 @@ +package fr.devinsy.util.unix.acl; + + +/** + * + */ +public class Acl +{ + static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (Acl.class); + + + /* + # file: goo39 + # owner: goo39 + # group: goo39 + user::rwx + user:cpm:rwx #effective:rwx + user:goo39:rwx #effective:rwx + group::--- #effective:--- + group:goo40:rwx #effective:rwx + mask::rwx + other::--- + default:user::rwx + default:user:cpm:rwx #effective:rwx + default:group::--- #effective:--- + default:group:cpm:rwx #effective:rwx + default:group:goo40:rwx #effective:rwx + default:mask::rwx + default:other::--- + */ + + protected String filePathname; + protected String owner; + protected String group; + + protected AclEntries currentAcl; + protected AclEntries defaultAcl; + + /** + * + */ + public Acl (String filePathname) + { + this.filePathname = filePathname; + this.owner = ""; + this.group = ""; + this.currentAcl = new AclEntries(); + this.defaultAcl = new AclEntries(); + } + + + /** + * + */ + public String filePathname() + { + String result; + + result = this.filePathname; + + // + return(result); + } + + + /** + * + */ + public String owner() + { + String result; + + result = this.owner; + + // + return(result); + } + + + /** + * + */ + public void setOwner(String owner) + { + this.owner = owner; + } + + + /** + * + */ + public String group() + { + String result; + + result = this.group; + + // + return(result); + } + + + /** + * + */ + public void setGroup(String group) + { + this.group = group; + } + + + /** + * + */ + public AclEntries currentAcl() + { + AclEntries result; + + result = this.currentAcl; + + // + return(result); + } + + + /** + * + */ + public AclEntries defaultAcl() + { + AclEntries result; + + result = this.defaultAcl; + + // + return(result); + } + + + /** + * + */ + public boolean containsUser(String login) + { + boolean result; + + result = contains(AclEntry.Type.USER, login); + + // + return(result); + } + + + /** + * + */ + public boolean containsGroup(String group) + { + boolean result; + + result = contains(AclEntry.Type.GROUP, group); + + // + return(result); + } + + + /** + * + */ + public boolean containsId(String id) + { + boolean result; + + if ((containsUser(id) || containsGroup(id))) + { + result = true; + } + else + { + result = false; + } + + // + return(result); + } + + + /** + * + */ + public boolean contains(AclEntry.Type type, String id) + { + boolean result; + + if ((this.currentAcl().contains(type, id)) || + (this.defaultAcl().contains(type, id))) + { + result = true; + } + else + { + result = false; + } + + // + return(result); + } +} + +// //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/util/unix/acl/AclEntries.java b/src/fr/devinsy/util/unix/acl/AclEntries.java new file mode 100644 index 0000000..dad87d7 --- /dev/null +++ b/src/fr/devinsy/util/unix/acl/AclEntries.java @@ -0,0 +1,203 @@ +package fr.devinsy.util.unix.acl; + + +import java.util.Iterator; +import java.util.Vector; + + +/** + * + */ +public class AclEntries extends Vector +{ + private static final long serialVersionUID = 5802487312198869603L; + static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (AclEntries.class); + + /** + * + */ + public AclEntries () + { + super (); + } + + + /** + * + */ + public AclEntry get (AclEntry.Type type, String id) + { + AclEntry result; + + result = null; + boolean ended = false; + Iterator iterator = this.iterator (); + while (!ended) + { + if (iterator.hasNext ()) + { + AclEntry entry = iterator.next (); + if ((type == entry.type()) && (entry.id ().equals(id))) + { + ended = true; + result = entry; + } + } + else + { + ended = true; + result = null; + } + } + + // + return (result); + } + + + /* + * + */ + public boolean contains(AclEntry.Type type, String id) + { + boolean result; + + if (this.get (type, id) == null) + { + result = false; + } + else + { + result = true; + } + + // + return (result); + } + + + /** + * + */ + public String[] getUserIds () + { + String[] result; + + // + Vector ids = new Vector (); + + for (AclEntry entry : this) + { + if ((entry.type == AclEntry.Type.USER) && (!ids.contains(entry.id()))) + { + ids.add(entry.id()); + } + } + + // + result = new String[ids.size()]; + + for (int nId = 0; nId < ids.size(); nId++) + { + result[nId] = ids.get(nId); + } + + // + return (result); + } + + + /** + * + */ + public String[] getGroupIds () + { + String[] result; + + Vector ids = new Vector (); + + for (AclEntry entry : this) + { + if ((entry.type == AclEntry.Type.GROUP) && (!ids.contains(entry.id()))) + { + ids.add(entry.id()); + } + } + + result = (String[]) ids.toArray(); + + // + return (result); + } + + + /** + * + */ + public String[] getIds () + { + String[] result; + + Vector ids = new Vector (); + + for (AclEntry entry : this) + { + if (!ids.contains(entry.id())) + { + ids.add(entry.id()); + } + } + + result = (String[]) ids.toArray(); + + // + return (result); + } + + + /** + * + */ + public boolean containsId(String id) + { + boolean result; + + if ((this.get(AclEntry.Type.USER, id) == null) && + (this.get(AclEntry.Type.GROUP, id) == 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); + } +} + +// //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/util/unix/acl/AclEntry.java b/src/fr/devinsy/util/unix/acl/AclEntry.java new file mode 100644 index 0000000..9c1abbd --- /dev/null +++ b/src/fr/devinsy/util/unix/acl/AclEntry.java @@ -0,0 +1,97 @@ +package fr.devinsy.util.unix.acl; + + +/** + * + */ +public class AclEntry +{ + static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (AclEntry.class); + + + /* + user::rwx + user:cpm:rwx #effective:rwx + user:goo39:rwx #effective:rwx + group::--- #effective:--- + group:goo40:rwx #effective:rwx + mask::rwx + other::--- + */ + + public enum Type {NONE, USER, GROUP, MASK, OTHER}; + + + protected Type type; + protected String id; + protected String permission; + + + /** + * + */ + public AclEntry (Type type, String id, String permission) + { + this.type = type; + this.id = id; + this.permission = permission; + } + + + /** + * + */ + public Type type() + { + Type result; + + result = this.type; + + // + return(result); + } + + + /** + * + */ + public String id() + { + String result; + + result = this.id; + + // + return(result); + } + + + /** + * + */ + public String permission() + { + String result; + + result = this.type.toString() + ":" + this.id + ":" + this.permission; + + // + return(result); + } + + + /** + * + */ + public String toString() + { + String result; + + result = permission; + + // + return(result); + } +} + +// //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/util/unix/acl/AclManager.java b/src/fr/devinsy/util/unix/acl/AclManager.java new file mode 100644 index 0000000..e757bf0 --- /dev/null +++ b/src/fr/devinsy/util/unix/acl/AclManager.java @@ -0,0 +1,426 @@ +package fr.devinsy.util.unix.acl; + + +import java.io.File; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import fr.devinsy.util.StringConcatenator; +import fr.devinsy.util.cmdexec.CmdExec; +import fr.devinsy.util.unix.Unix; + + + +/** + * + */ +public class AclManager +{ + static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (AclManager.class); + static public final String SUDO = "/usr/bin/sudo"; + + static final public Pattern USER_PATTERN = Pattern.compile("^user:(.*):(.*)$"); + static final public Pattern GROUP_PATTERN = Pattern.compile("^group:(.*):(.*)$"); + static final public Pattern MASK_PATTERN = Pattern.compile("^mask:(.*):(.*)$"); + static final public Pattern OTHER_PATTERN = Pattern.compile("^other:(.*):(.*)$"); + static final public Pattern DEFAULT_USER_PATTERN = Pattern.compile("^default:user:(.*):(.*)$"); + static final public Pattern DEFAULT_GROUP_PATTERN = Pattern.compile("^default:group:(.*):(.*)$"); + static final public Pattern DEFAULT_MASK_PATTERN = Pattern.compile("^default:mask:(.*):(.*)$"); + static final public Pattern DEFAULT_OTHER_PATTERN = Pattern.compile("^default:other:(.*):(.*)$"); + + + /** + * + */ + static public void setfacl (String ... args) throws Exception + { + try + { + CmdExec.run(SUDO, "setfacl", args, 1, 5); + } + catch (Exception exception) + { + throw new Exception ("Error running setfacl command for " + StringConcatenator.toStringWithBrackets(args) + ":" + exception.getMessage() + "."); + } + } + + + /** + * + */ + static public String getAclData (String filePathName) throws Exception + { + String result; + + try + { + logger.info ("Getting Acl data for [" + filePathName + "]."); + result = CmdExec.run (SUDO, "/usr/bin/getfacl", "--no-effective", filePathName); + logger.info ("Acl data got for [" + filePathName + "]."); + } + catch (Exception exception) + { + throw new Exception ("Error getting ACL for [" + filePathName + "].", exception); + } + + // + return(result); + } + + + /** + * + */ + static public String[] getAclEntryLines (String filePathName) + { + String[] result; + + try + { + result = getAclData(filePathName).split("\n"); + } + catch (Exception exception) + { + result = new String[0]; + } + + // + return (result); + } + + + /** + * + */ + static public Acl getAcl (String filePathName) throws Exception + { + Acl result; + + result = new Acl(filePathName); + + String[] entries = getAclEntryLines(filePathName); + + // Login pattern: "^[a-z_][a-z0-9_-]*$". + logger.debug("Line=[" + entries[1] + "]"); + Matcher matcher = Pattern.compile("^#\\sowner:\\s([a-z_][a-z0-9_-]*)$").matcher(entries[1]); + if (matcher.matches()) + { + logger.debug("group=[" + matcher.group(1) + "]"); + result.setOwner(matcher.group(1)); + } + + // Group pattern: "^[a-z_][a-z0-9_-]*$". + logger.debug("Line=[" + entries[2] + "]"); + matcher = Pattern.compile("^#\\sgroup:\\s([a-z_][a-z0-9_-]*)$").matcher(entries[2]); + if (matcher.matches()) + { + logger.debug("group=[" + matcher.group(1) + "]"); + result.setOwner(matcher.group(1)); + } + + + for (int nEntry = 3; nEntry < entries.length; nEntry++) + { + String entryLine = entries[nEntry]; + logger.debug("Line=[" + entryLine + "]"); + + // + Matcher userMatcher = USER_PATTERN.matcher(entryLine); + Matcher groupMatcher = GROUP_PATTERN.matcher(entryLine); + Matcher maskMatcher = MASK_PATTERN.matcher(entryLine); + Matcher otherMatcher = OTHER_PATTERN.matcher(entryLine); + Matcher defaultUserMatcher = DEFAULT_USER_PATTERN.matcher(entryLine); + Matcher defaultGroupMatcher = DEFAULT_GROUP_PATTERN.matcher(entryLine); + Matcher defaultMaskMatcher = DEFAULT_MASK_PATTERN.matcher(entryLine); + Matcher defaultOtherMatcher = DEFAULT_OTHER_PATTERN.matcher(entryLine); + + AclEntry entry; + if (userMatcher.matches()) + { + entry = new AclEntry(AclEntry.Type.USER, userMatcher.group(1), userMatcher.group(2)); + result.currentAcl().add(entry); + } + else if (groupMatcher.matches()) + { + entry = new AclEntry(AclEntry.Type.GROUP, groupMatcher.group(1), groupMatcher.group(2)); + result.currentAcl().add(entry); + } + else if (maskMatcher.matches()) + { + entry = new AclEntry(AclEntry.Type.MASK, maskMatcher.group(1), maskMatcher.group(2)); + result.currentAcl().add(entry); + } + else if (otherMatcher.matches()) + { + entry = new AclEntry(AclEntry.Type.OTHER, otherMatcher.group(1), otherMatcher.group(2)); + result.currentAcl().add(entry); + } + else if (defaultUserMatcher.matches()) + { + entry = new AclEntry(AclEntry.Type.USER, defaultUserMatcher.group(1), defaultUserMatcher.group(2)); + result.defaultAcl().add(entry); + } + else if (defaultGroupMatcher.matches()) + { + entry = new AclEntry(AclEntry.Type.GROUP, defaultGroupMatcher.group(1), defaultGroupMatcher.group(2)); + result.defaultAcl().add(entry); + } + else if (defaultMaskMatcher.matches()) + { + entry = new AclEntry(AclEntry.Type.MASK, defaultMaskMatcher.group(1), defaultMaskMatcher.group(2)); + result.defaultAcl().add(entry); + } + else if (defaultOtherMatcher.matches()) + { + entry = new AclEntry(AclEntry.Type.OTHER, defaultOtherMatcher.group(1), defaultOtherMatcher.group(2)); + result.defaultAcl().add(entry); + } + else + { + throw new Exception ("Unknow ACL entry line pattern for [" + entryLine + "]."); + } + + logger.debug("Acl entry decoded: [" + entry.toString() + "]"); + } + + // + return (result); + } + + + /** + * + */ + public static boolean isUsed(AclEntry.Type type, String id, String filePath, String[] filePathNames, int depth) throws Exception + { + boolean result; + + result = false; + boolean ended = false; + int nLine = 0; + while (!ended) + { + if (nLine < filePathNames.length) + { + String filePathName = filePathNames[nLine]; + if (isUsed(type, id, filePath + "/" + filePathName, depth)) + { + ended = true; + result = true; + } + else + { + nLine += 1; + } + } + else + { + ended = true; + result = false; + } + } + + // + return(result); + } + + + /** + * + */ + public static boolean isUsed(AclEntry.Type type, String id, String filePathName, int depth) throws Exception + { + boolean result; + + if ((type == null) || + (id == null) || (id.length() == 0) || + (filePathName == null) || (filePathName.length() == 0) || + (depth < 0)) + { + throw new Exception("Bad parameter: [" + type + "][" + id + "][" + filePathName + "][" + depth + "]."); + } + else + { + File file = new File (filePathName); + if (!file.exists()) + { + throw new Exception ("File does not exist [" + filePathName + "]."); + } + else + { + Acl acl = getAcl(filePathName); + if (acl.contains(type, id)) + { + result = true; + } + else if ((file.isDirectory()) && (depth > 0)) + { + result = isUsed(type, id, filePathName, file.list(), depth - 1); + } + else + { + result = false; + } + } + } + + // + return (result); + } + + + /** + * + */ + public static boolean isUsed(AclEntry.Type type, String id, String filePathName) throws Exception + { + boolean result; + + result = isUsed(type, id, filePathName, 0); + + // + return (result); + } + + + /** + * + */ + public static boolean isUsed(String id, String[] filePathNames, int depth) throws Exception + { + boolean result; + + result = false; + boolean ended = false; + int nLine = 0; + while (!ended) + { + if (nLine < filePathNames.length) + { + String filePathName = filePathNames[nLine]; + if (isUsed(id, filePathName, depth)) + { + ended = true; + result = true; + } + else + { + nLine += 1; + } + } + else + { + ended = true; + result = false; + } + } + + // + return(result); + } + + + /** + * + */ + public static boolean isUsed(String id, String filePathName, int depth) throws Exception + { + boolean result; + + if ((id == null) || (id.length() == 0) || + (filePathName == null) || (filePathName.length() == 0) || + (depth < 0)) + { + throw new Exception("Bad parameter: [" + id + "][" + filePathName + "][" + depth + "]."); + } + else + { + File file = new File (filePathName); + if (!file.exists()) + { + throw new Exception ("File does not exist [" + filePathName + "]."); + } + else + { + Acl acl = getAcl(filePathName); + if (acl.containsId(id)) + { + result = true; + } + else if ((file.isDirectory()) && (depth > 0)) + { + result = isUsed(id, file.list(), depth - 1); + } + else + { + result = false; + } + } + } + + // + return (result); + } + + + /** + * + */ + public static boolean isUsed(String id, String filePathName) throws Exception + { + boolean result; + + result = isUsed(id, filePathName, 0); + + // + return (result); + } + + + /** + * + */ + public static void clearUser(String login, String filePathName) throws Exception + { + if ((login == null) || (login.length() == 0) || + (filePathName == null) || (filePathName.length() == 0)) + { + throw new Exception("Bad parameters [" + login + "][" + filePathName + "]."); + } + else + { + Unix.setfacl("-R", "-L", "-x", "user:" + login, filePathName); + Unix.setfacl("-R", "-L", "-d", "-x", "user:" + login, filePathName); + } + } + + + /** + * + */ + public static void clearGroup(String group, String filePathName) throws Exception + { + if ((group == null) || (group.length() == 0) || + (filePathName == null) || (filePathName.length() == 0)) + { + throw new Exception("Bad parameters [" + group + "][" + filePathName + "]."); + } + else + { + Unix.setfacl("-R", "-L", "-x", "group:" + group, filePathName); + Unix.setfacl("-R", "-L", "-d", "-x", "group:" + group, filePathName); + } + } + + + /** + * + */ + public static void clearId(String id, String filePathName) throws Exception + { + clearUser(id, filePathName); + clearGroup(id, filePathName); + } +} + +// //////////////////////////////////////////////////////////////////////// \ No newline at end of file diff --git a/src/fr/devinsy/util/web/FileItemHelper.java b/src/fr/devinsy/util/web/FileItemHelper.java new file mode 100644 index 0000000..7214ad9 --- /dev/null +++ b/src/fr/devinsy/util/web/FileItemHelper.java @@ -0,0 +1,85 @@ +package fr.devinsy.util.web; + +import java.util.List; + +import javax.servlet.http.HttpServletResponse; + +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 new file mode 100644 index 0000000..2d10f70 --- /dev/null +++ b/src/fr/devinsy/util/web/Redirector.java @@ -0,0 +1,26 @@ +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 new file mode 100644 index 0000000..898035a --- /dev/null +++ b/src/fr/devinsy/util/web/SimpleSecurityAgent.java @@ -0,0 +1,250 @@ +package fr.devinsy.util.web; + + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +import javax.servlet.http.*; +import sun.security.provider.MD5; + + +/** + * + */ +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); + } + + + /** + * + */ + static public Cookie buildCookie (String name, String value, int duration) + { + Cookie result; + + result = new Cookie (name, value); + result.setMaxAge (duration); + result.setPath ("/"); + result.setSecure (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 Object getCookieValue (Cookie[] cookies, String key) + { + Object result; + + Cookie cookie = getCookie(cookies, key); + + if (cookie == null) + { + result = null; + } + else + { + result = cookie.getValue(); + } + + // + return(result); + } + + + /** + * + */ + public String userId(HttpServletRequest request) + { + String result; + + result = (String) getCookieValue(request.getCookies (), this.userIdLabel); + + // + return(result); + } + + + /** + * + */ + public String accountId(HttpServletRequest request) + { + String result; + + result = (String) getCookieValue(request.getCookies (), this.accountIdLabel); + + // + return(result); + } + + + + /** + * + */ + public String auth(HttpServletRequest request) + { + String result; + + result = (String) getCookieValue(request.getCookies (), 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 (buildCookie(this.authLabel, auth, duration)); + response.addCookie (buildCookie(this.accountIdLabel, accountId, duration)); + response.addCookie (buildCookie(this.userIdLabel, userId, duration)); + + logger.info("set [" + auth + "," + accountId + "," + userId + "," + request.getRemoteAddr() + ")"); + } + + + /** + * + */ + public void reset(HttpServletRequest request, HttpServletResponse response) + { + response.addCookie(buildCookie(this.authLabel, "", 0)); + response.addCookie(buildCookie(this.accountIdLabel, "", 0)); + response.addCookie(buildCookie(this.userIdLabel, "", 0)); + } +} \ No newline at end of file diff --git a/src/fr/devinsy/xidvc/Page.java b/src/fr/devinsy/xidvc/Page.java new file mode 100644 index 0000000..74f0d72 --- /dev/null +++ b/src/fr/devinsy/xidvc/Page.java @@ -0,0 +1,18 @@ +package fr.devinsy.xidvc; +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/xidvc/PageManager.java b/src/fr/devinsy/xidvc/PageManager.java new file mode 100644 index 0000000..cf59bfc --- /dev/null +++ b/src/fr/devinsy/xidvc/PageManager.java @@ -0,0 +1,392 @@ +package fr.devinsy.xidvc; + +import java.io.*; +import javax.servlet.*; +import javax.servlet.http.*; +import fr.devinsy.xidvc.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; + + this.securityAgent = new SecurityAgent (getInitParameter ("securityDataPath")); + } + + /** + * + */ + 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/xidvc/ServletDispatcher.java b/src/fr/devinsy/xidvc/ServletDispatcher.java new file mode 100644 index 0000000..1add427 --- /dev/null +++ b/src/fr/devinsy/xidvc/ServletDispatcher.java @@ -0,0 +1,71 @@ +/** + * @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.xidvc; + +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/xidvc/SimpleServletDispatcher.java b/src/fr/devinsy/xidvc/SimpleServletDispatcher.java new file mode 100644 index 0000000..01174e5 --- /dev/null +++ b/src/fr/devinsy/xidvc/SimpleServletDispatcher.java @@ -0,0 +1,276 @@ +/** + * @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.xidvc; + +import java.io.*; +import java.util.Enumeration; + +import javax.servlet.*; +import javax.servlet.http.*; + +import fr.devinsy.util.StringConcatenator; + + +/** + * + */ +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); + protected String pathInfoClassNamePrefix; + + + /** + * + */ + public void init () throws ServletException + { + super.init(); + this.pathInfoClassNamePrefix = getInitParameter("pathInfoClassNamePrefix"); + + // 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."); + } + } + + + /** + * "/" => "Index_xhtml" + * "/good/" => "good.Good_xhtml" + * "/good/morning.xhtml" => "good.Morning_xhtml" + * "/good/day_day.xhtml" => "good.Day_day_xhtml" + */ + static public String pathInfoToClassName (String pathInfo) + { + String result; + + if ((pathInfo == null) || (pathInfo.length() == 0)) + { + result = null; + } + else + { + if ( pathInfo.equals ("/")) + { + result = "Index_xhtml"; + } + else + { + String[] tokens = pathInfo.split ("/"); + StringConcatenator name = new StringConcatenator(); + + 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 + { + 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 (String pathInfo, String prefix) + { + String result; + + if (prefix == null) + { + result = pathInfoToClassName(pathInfo); + } + else if (prefix.endsWith(".")) + { + result = prefix + pathInfoToClassName(pathInfo); + } + else + { + result = prefix + "." + pathInfoToClassName(pathInfo); + } + + // + return (result); + } + + + /** + * + */ + static public HttpServlet instanciateServlet (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); + } + + + /** + * + */ + public boolean isAuthorized(HttpServletRequest request, HttpServletResponse response) + { + boolean result; + + result = true; + + // + return(result); + } + + /** + * + */ + 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 path; + if (request.getPathInfo() == null) + { + // web.xml url-pattern= *.xhtml + path = request.getServletPath(); + } + else + { + // web.xml url-pattern = /* + path = request.getPathInfo(); + } + + String className = pathInfoToClassName (path, this.pathInfoClassNamePrefix); + 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.service(request, response); + } + else + { +/* + // + response.setContentType ("text/html"); + PrintWriter out = response.getWriter(); + + out.println (""); + out.println ("Not authorized page."); + out.println (""); + */ + } + } + + + /** + * + */ + public void doGet (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException + { + doIt (request, response); + } + + + /** + * + */ + public void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException + { + doIt (request, response); + } +} diff --git a/src/fr/devinsy/xidvc/security/Group.java b/src/fr/devinsy/xidvc/security/Group.java new file mode 100644 index 0000000..e9ef33a --- /dev/null +++ b/src/fr/devinsy/xidvc/security/Group.java @@ -0,0 +1,101 @@ +package fr.devinsy.xidvc.security; + + +import java.util.*; + +/** + * + */ +public class Group +{ + static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (Group.class); + + 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 void setName (String name) + { + this.name = name; + } + + /** + * + */ + public String toString () + { + String result; + + result = "|" + this.name + "|" + this.members + "|"; + + // + return (result); + } +} + +// //////////////////////////////////////////////////////////////////////// diff --git a/src/fr/devinsy/xidvc/security/Groups.java b/src/fr/devinsy/xidvc/security/Groups.java new file mode 100644 index 0000000..e60019a --- /dev/null +++ b/src/fr/devinsy/xidvc/security/Groups.java @@ -0,0 +1,165 @@ +package fr.devinsy.xidvc.security; + + +import java.util.*; + +/** + * + */ +public class Groups extends Vector +{ + private static final long serialVersionUID = 6238581648850758903L; + static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (Groups.class); + + + /** + * + */ + 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/xidvc/security/GroupsFileReader.java b/src/fr/devinsy/xidvc/security/GroupsFileReader.java new file mode 100644 index 0000000..1b76acc --- /dev/null +++ b/src/fr/devinsy/xidvc/security/GroupsFileReader.java @@ -0,0 +1,58 @@ +package fr.devinsy.xidvc.security; + +import java.io.*; +import java.util.*; + + +/** + * + */ +public class GroupsFileReader +{ + static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (GroupsFileReader.class); + + + /** + * + */ + static public Groups load (String fileName) + { + 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 e) + { + logger.fatal ("can't load (" + fileName + ")"); + } + + // + return (result); + } +} + +// //////////////////////////////////////////////////////////////////////// diff --git a/src/fr/devinsy/xidvc/security/SecurityAgent.java b/src/fr/devinsy/xidvc/security/SecurityAgent.java new file mode 100644 index 0000000..464ffdb --- /dev/null +++ b/src/fr/devinsy/xidvc/security/SecurityAgent.java @@ -0,0 +1,154 @@ +package fr.devinsy.xidvc.security; + + +import java.util.*; + + + +/** + * + */ +public class SecurityAgent +{ + static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (SecurityAgent.class); + + protected Users users; + protected Groups groups; + protected Groups permissions; + + + /** + * + */ + public SecurityAgent (String path) + { + 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) + { + logger.info ("unknow login try to connect."); + 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/xidvc/security/User.java b/src/fr/devinsy/xidvc/security/User.java new file mode 100644 index 0000000..ca456ae --- /dev/null +++ b/src/fr/devinsy/xidvc/security/User.java @@ -0,0 +1,129 @@ +package fr.devinsy.xidvc.security; + + + + +/** + * + */ +public class User +{ + static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (User.class); + + 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 void setEmail (String email) + { + this.email = email; + } + + /** + * + */ + public void setLogin (String login) + { + this.login = login; + } + + /** + * + */ + public void setPassword (String password) + { + this.password = password; + } + + /** + * + */ + public void setRealName (String realName) + { + this.realName = realName; + } + + /** + * + */ + public String toString () + { + String result; + + result = "|" + this.login + "|" + this.password + "|" + this.realName + "|"; + + // + return (result); + } +} + diff --git a/src/fr/devinsy/xidvc/security/Users.java b/src/fr/devinsy/xidvc/security/Users.java new file mode 100644 index 0000000..3321609 --- /dev/null +++ b/src/fr/devinsy/xidvc/security/Users.java @@ -0,0 +1,110 @@ +package fr.devinsy.xidvc.security; + + +import java.util.*; + + +/** + * + */ +public class Users extends Vector +{ + private static final long serialVersionUID = 6140538630004281217L; + static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (Users.class); + + + /** + * + */ + 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/xidvc/security/UsersFileReader.java b/src/fr/devinsy/xidvc/security/UsersFileReader.java new file mode 100644 index 0000000..6fca6c2 --- /dev/null +++ b/src/fr/devinsy/xidvc/security/UsersFileReader.java @@ -0,0 +1,59 @@ +package fr.devinsy.xidvc.security; + +import java.io.*; +import java.util.*; + + +/** + * + */ +public class UsersFileReader +{ + static private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (UsersFileReader.class); + + + /** + * + */ + static public Users load (String fileName) + { + 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 e) + { + logger.fatal ("can't load (" + fileName + ")"); + } + + + // + return (result); + } +} + +// //////////////////////////////////////////////////////////////////////// diff --git a/tests/Test.java b/tests/Test.java new file mode 100644 index 0000000..57e35ce --- /dev/null +++ b/tests/Test.java @@ -0,0 +1,242 @@ +import java.util.regex.Pattern; + +import fr.devinsy.xid.Data; +import fr.devinsy.xid.IdData; +import fr.devinsy.xid.StringPresenter; + +/** + * Devinsy-utils tests. + */ + + + +/** + * + */ +class XidTest +{ + static private org.apache.log4j.Logger logger; + + static + { + // Initialize logger. + org.apache.log4j.Logger log = null; + + org.apache.log4j.BasicConfigurator.configure (); + + + log = 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"); + log = org.apache.log4j.Logger.getLogger (XidTest.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 enum MONTHS {JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER, OCTOBER, NOVEMBRE, DECEMBRE}; + + /** + * + */ + public static void main(String[] args) + { + System.out.println("Automatic test action for Xid!"); + + Data datas; + IdData tag; + + + String htmlSource; + StringBuffer html; + StringBuffer errorMessage; + + // Populate attributes of Test 03. + System.out.println ("----------------------------"); + datas = new Data (); + datas.setContent ("name", "Superman"); + errorMessage = new StringBuffer (); + + html = StringPresenter.doXid ("
a name
", datas, errorMessage); + + System.out.println (check ("only content change", html, "
Superman
")); + + + // Populate attributes of Test 03. + System.out.println ("----------------------------"); + datas = new Data (); + datas.setContent ("lastname", "Spiderman"); + datas.appendAttribute ("lastname", "style", "background: blue;"); + datas.appendAttribute ("lastname", "style", "foreground: red;"); + datas.setAttribute ("lastname", "class", "nameClass"); + + errorMessage = new StringBuffer (); + html = StringPresenter.doXid ("
a last name
", datas, errorMessage); + System.out.println (check ("content and attributes", html, "
Spiderman
")); + + // Populate attributes of Test 03. + System.out.println ("----------------------------"); + datas = new Data (); + datas.setContent ("words", 0, "alpha"); + datas.setContent ("words", 1, "bravo"); + datas.setContent ("words", 2, "charlie"); + datas.setContent ("words", 3, "delta"); + datas.setContent ("words", 4, "echo"); + datas.setContent ("words", 5, "fox"); + + + errorMessage = new StringBuffer (); + html = StringPresenter.doXid ("
    \n
  • a word
  • \n
", datas, errorMessage); + + System.out.println (check ("list assertion 1", html, "
  • alpha
  • ")); + System.out.println (check ("list assertion 2", html, "
  • bravo
  • ")); + System.out.println (check ("list assertion 3", html, "
  • charlie
  • ")); + System.out.println (check ("list assertion 4", html, "
  • delta
  • ")); + System.out.println (check ("list assertion 5", html, "
  • echo
  • ")); + System.out.println (check ("list assertion 6", html, "
  • fox
  • ")); + + // Populate attributes of Test 03. + System.out.println ("----------------------------"); + datas = new Data (); + datas.setContent ("identity", 0, "nom", "Jemba"); + datas.setContent ("identity", 0, "prenom", "Epo"); + datas.setContent ("identity", 1, "nom", "Momon"); + datas.setContent ("identity", 1, "prenom", "Christian"); + datas.setContent ("identity", 2, "nom", "Tronche"); + datas.setContent ("identity", 2, "prenom", "Christophe"); + + + errorMessage = new StringBuffer (); + StringBuffer source = new StringBuffer (); + source.append ("\n"); + source.append (" \n"); + source.append ("
    noidun nomun prenom
    "); + htmlSource = source.toString (); + html = StringPresenter.doXid (htmlSource, datas, errorMessage); + + System.out.println (check ("table 1 assertion 1", html, "noidJembaEpo")); + System.out.println (check ("table 1 assertion 2", html, "noidMomonChristian")); + System.out.println (check ("table 1 assertion 3", html, "noidTroncheChristophe")); + + /* + // Populate attributes of Test 03. + System.out.println ("----------------------------"); + datas = new Data (); + datas.setContent ("identity", 0, "nom", "Jemba"); + datas.setContent ("identity", 0, "prenom", "Epo"); + datas.setContent ("identity", 1, "nom", "Momon"); + datas.setContent ("identity", 1, "prenom", "Christian"); + datas.setContent ("identity", 2, "nom", "Tronche"); + datas.setContent ("identity", 2, "prenom", "Christophe"); + datas.setIterationStrategy ("identity", IdsDataByIndex.IterationStrategy.ONLY_FIRST_ROW); + //datas.setIterationStrategy ("identity", IdsDataByIndex.IterationStrategy.ONLY_ROWS_WITH_ID); + //datas.setIterationStrategy ("identity", IdsDataByIndex.IterationStrategy.ONLY_ROWS_WITHOUT_ID); + //datas.setIterationStrategy ("identity", IdsDataByIndex.IterationStrategy.ALL_ROWS); + + + errorMessage = new StringBuffer (); + source = new StringBuffer (); + source.append ("\n"); + source.append (" \n"); + source.append (" \n"); + source.append (" \n"); + source.append ("
    noidun nomun prenom
    noidun nomun prenom
    noidun nomun prenom
    "); + htmlSource = source.toString (); + + System.out.println ("datas = new Data ();"); + System.out.println ("datas.setContent (\"identity\", 0, \"nom\", \"Jemba\");"); + System.out.println ("datas.setContent (\"identity\", 0, \"prenom\", \"Epo\");"); + System.out.println ("datas.setContent (\"identity\", 1, \"nom\", \"Momon\");"); + System.out.println ("datas.setContent (\"identity\", 1, \"prenom\", \"Christian\");"); + System.out.println ("datas.setContent (\"identity\", 2, \"nom\", \"Tronche\");"); + System.out.println ("datas.setContent (\"identity\", 2, \"prenom\", \"Christophe\");"); + + System.out.println ("+"); + System.out.println (htmlSource); + System.out.println ("=>"); + + + datas.setIterationStrategy ("identity", IdsDataByIndex.IterationStrategy.ONLY_FIRST_ROW); + System.out.println ("ONLY_FIRST_ROW:"); + html = Presenter.doXid (htmlSource, datas, "", errorMessage); + System.out.println (html); + + datas.setIterationStrategy ("identity", IdsDataByIndex.IterationStrategy.ONLY_ROWS_WITH_ID); + System.out.println ("ONLY_ROWS_WITH_ID:"); + html = Presenter.doXid (htmlSource, datas, "", errorMessage); + System.out.println (html); + + datas.setIterationStrategy ("identity", IdsDataByIndex.IterationStrategy.ONLY_ROWS_WITHOUT_ID); + System.out.println ("ONLY_ROWS_WITHOUT_ID:"); + html = Presenter.doXid (htmlSource, datas, "", errorMessage); + System.out.println (html); + + datas.setIterationStrategy ("identity", IdsDataByIndex.IterationStrategy.ALL_ROWS); + System.out.println ("ALL_ROWS:"); + html = Presenter.doXid (htmlSource, datas, "", errorMessage); + System.out.println (html); + + + + // Populate attributes of Test 03. + System.out.println ("----------------------------"); + datas = new Data (); + datas.setAttribute ("
    ", "class", "aDivClass"); + datas.setAttribute ("
    ", "style", "background-color: #000000;"); + datas.setAttribute ("number", "style", "background-color: #0000FF;"); + + errorMessage = new StringBuffer (); + source = new StringBuffer (); + source.append ("
    \n"); + source.append ("

    one

    \n"); + source.append ("
    \n"); + source.append ("
    \n"); + source.append ("

    three

    \n"); + source.append ("
    "); + htmlSource = source.toString (); + html = Presenter.doXid (htmlSource, datas, "", errorMessage); + + System.out.println (htmlSource); + System.out.println ("+"); + System.out.println ("datas = new Data ();"); + System.out.println ("datas.setAttribute (\"
    \", \"class\", \"aDivClass\");"); + System.out.println ("datas.setAttribute (\"
    \", \"style\", \"background-color: #000000;\");"); + System.out.println ("datas.setAttribute (\"number\", \"style\", \"background-color: #0000FF;\");"); + + System.out.println ("=>"); + System.out.println (html); + */ + } +}