branch develop updated (ea937ba -> 980db0e)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository scmwebeditor. See http://git.nuiton.org/scmwebeditor.git from ea937ba Add the support of Markdown files for the preview new 980db0e Improve code quality and fix the error when building with Java 6 The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 980db0ec647a737d3a3b194677b5547933f0804f Author: Hugo PIGEON <hpigeon@codelutin.com> Date: Fri Jun 12 14:09:34 2015 +0200 Improve code quality and fix the error when building with Java 6 Summary of changes: .../org/nuiton/scmwebeditor/api/ScmConnection.java | 7 ++-- .../nuiton/scmwebeditor/api/ScmFileManager.java | 3 -- .../org/nuiton/scmwebeditor/api/ScmRevision.java | 5 ++- .../uiweb/actions/AbstractScmWebEditorAction.java | 11 +++--- .../scmwebeditor/uiweb/actions/BrowseAction.java | 7 ++-- .../uiweb/actions/CreateDirectoryAction.java | 15 -------- .../uiweb/actions/DownloadFileAction.java | 16 +++------ .../scmwebeditor/uiweb/actions/EditAction.java | 21 +++++++---- .../scmwebeditor/uiweb/actions/GetImageAction.java | 19 ++++++++-- .../uiweb/{ => actions}/ImageBytesResult.java | 3 +- .../scmwebeditor/uiweb/actions/MoveFileAction.java | 18 +--------- .../uiweb/actions/RemoveDirectoryAction.java | 18 +--------- .../uiweb/actions/RemoveFileAction.java | 18 +--------- .../uiweb/actions/ScmWebEditorCommitAction.java | 20 +++++++---- .../uiweb/actions/UploadFileAction.java | 18 +--------- .../uiweb/actions/ViewHistoryAction.java | 20 ++++++++--- .../uiweb/actions/ViewImageAction.java | 42 ++++++++++++++++------ swe-ui-web/src/main/resources/struts.xml | 2 +- 18 files changed, 121 insertions(+), 142 deletions(-) rename swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/{ => actions}/ImageBytesResult.java (93%) -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository scmwebeditor. See http://git.nuiton.org/scmwebeditor.git commit 980db0ec647a737d3a3b194677b5547933f0804f Author: Hugo PIGEON <hpigeon@codelutin.com> Date: Fri Jun 12 14:09:34 2015 +0200 Improve code quality and fix the error when building with Java 6 --- .../org/nuiton/scmwebeditor/api/ScmConnection.java | 7 ++-- .../nuiton/scmwebeditor/api/ScmFileManager.java | 3 -- .../org/nuiton/scmwebeditor/api/ScmRevision.java | 5 ++- .../uiweb/actions/AbstractScmWebEditorAction.java | 11 +++--- .../scmwebeditor/uiweb/actions/BrowseAction.java | 7 ++-- .../uiweb/actions/CreateDirectoryAction.java | 15 -------- .../uiweb/actions/DownloadFileAction.java | 16 +++------ .../scmwebeditor/uiweb/actions/EditAction.java | 21 +++++++---- .../scmwebeditor/uiweb/actions/GetImageAction.java | 19 ++++++++-- .../uiweb/{ => actions}/ImageBytesResult.java | 3 +- .../scmwebeditor/uiweb/actions/MoveFileAction.java | 18 +--------- .../uiweb/actions/RemoveDirectoryAction.java | 18 +--------- .../uiweb/actions/RemoveFileAction.java | 18 +--------- .../uiweb/actions/ScmWebEditorCommitAction.java | 20 +++++++---- .../uiweb/actions/UploadFileAction.java | 18 +--------- .../uiweb/actions/ViewHistoryAction.java | 20 ++++++++--- .../uiweb/actions/ViewImageAction.java | 42 ++++++++++++++++------ swe-ui-web/src/main/resources/struts.xml | 2 +- 18 files changed, 121 insertions(+), 142 deletions(-) diff --git a/swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api/ScmConnection.java b/swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api/ScmConnection.java index cf92dd4..fb152a8 100644 --- a/swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api/ScmConnection.java +++ b/swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api/ScmConnection.java @@ -21,12 +21,13 @@ */ package org.nuiton.scmwebeditor.api; -import org.nuiton.scmwebeditor.api.dto.*; -import org.nuiton.scmwebeditor.api.dto.result.*; +import org.nuiton.scmwebeditor.api.dto.BrowseDto; +import org.nuiton.scmwebeditor.api.dto.CommitDto; +import org.nuiton.scmwebeditor.api.dto.result.BrowseResultDto; +import org.nuiton.scmwebeditor.api.dto.result.CommitResultDto; import javax.naming.AuthenticationException; import java.io.File; -import java.util.List; import java.util.Map; /** diff --git a/swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api/ScmFileManager.java b/swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api/ScmFileManager.java index 693d550..9d8009b 100644 --- a/swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api/ScmFileManager.java +++ b/swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api/ScmFileManager.java @@ -24,9 +24,6 @@ package org.nuiton.scmwebeditor.api; import org.nuiton.scmwebeditor.api.dto.*; import org.nuiton.scmwebeditor.api.dto.result.*; -import javax.naming.AuthenticationException; -import java.io.File; - /** * An interface which gives the SCMs features relative to file management */ diff --git a/swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api/ScmRevision.java b/swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api/ScmRevision.java index fa78009..9238ec1 100644 --- a/swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api/ScmRevision.java +++ b/swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api/ScmRevision.java @@ -31,7 +31,10 @@ public class ScmRevision implements Comparable { @Override public int compareTo(Object o) { - int returnVal = Long.compare(commitTime, ((ScmRevision) o).getCommitTime()); + Long thisCommitTime = commitTime; + Long otherCommitTime = ((ScmRevision) o).getCommitTime(); + + int returnVal = thisCommitTime.compareTo(otherCommitTime); returnVal *= -1; // to get the revisions from the last one to the oldest one diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/AbstractScmWebEditorAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/AbstractScmWebEditorAction.java index 5195dbe..8e2d845 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/AbstractScmWebEditorAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/AbstractScmWebEditorAction.java @@ -56,6 +56,8 @@ public abstract class AbstractScmWebEditorAction extends BaseAction implements S public static final String ERROR_PATH = "errorPath"; + protected static final String ENCODING = "UTF-8"; + /** the session which stores all the users' authentication information */ protected Map<String, Object> session; @@ -133,6 +135,7 @@ public abstract class AbstractScmWebEditorAction extends BaseAction implements S public void setScmType(String scmType) { this.scmType = scmType; } + public HttpServletRequest getRequest() { return request; } protected static CodepageDetectorProxy detector; @@ -172,7 +175,7 @@ public abstract class AbstractScmWebEditorAction extends BaseAction implements S log.debug("Charset for " + file.getAbsolutePath() + " is " + charset); } - if (charset != null && !charset.name().equalsIgnoreCase("UTF-8")) { + if (charset != null && !charset.name().equalsIgnoreCase(ENCODING)) { if (log.isDebugEnabled()) { log.debug("Convert " + file.getAbsolutePath() + " to unicode"); @@ -195,7 +198,7 @@ public abstract class AbstractScmWebEditorAction extends BaseAction implements S is = new FileInputStream(tmpFile); os = new FileOutputStream(file); Reader ir = new InputStreamReader(is, charset); - Writer ow = new OutputStreamWriter(new FileOutputStream(file), "UTF-8"); + Writer ow = new OutputStreamWriter(new FileOutputStream(file), ENCODING); try { IOUtils.copy(ir, ow); } finally { @@ -253,7 +256,7 @@ public abstract class AbstractScmWebEditorAction extends BaseAction implements S protected String getMimeType(String content, String filename) throws IOException { - InputStream is = new ByteArrayInputStream(content.getBytes("UTF-8")); + InputStream is = new ByteArrayInputStream(content.getBytes(ENCODING)); String result = null; try { BodyContentHandler contenthandler = new BodyContentHandler(); @@ -281,7 +284,7 @@ public abstract class AbstractScmWebEditorAction extends BaseAction implements S } protected String[] getMimeTypes(String content, String filename) throws IOException, SAXException, TikaException { - InputStream is = new ByteArrayInputStream(content.getBytes("UTF-8")); + InputStream is = new ByteArrayInputStream(content.getBytes(ENCODING)); try { BodyContentHandler contenthandler = new BodyContentHandler(); Metadata metadata = new Metadata(); diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/BrowseAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/BrowseAction.java index 9152076..7cffa65 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/BrowseAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/BrowseAction.java @@ -262,8 +262,11 @@ public class BrowseAction extends AbstractScmWebEditorAction implements ServletR log.error("Can not get bytes from UTF-8 encoding"); } } - authCookie.setMaxAge(60 * 60 * 24 * 365); - response.addCookie(authCookie); + + if (authCookie != null) { + authCookie.setMaxAge(60 * 60 * 24 * 365); + response.addCookie(authCookie); + } if (log.isDebugEnabled()) { log.debug("addscmuser uuid == " + repositoryUUID + " ; username == " + username + " ; pw == " + pw); diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/CreateDirectoryAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/CreateDirectoryAction.java index 4f0cbb1..ee303c6 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/CreateDirectoryAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/CreateDirectoryAction.java @@ -21,8 +21,6 @@ */ package org.nuiton.scmwebeditor.uiweb.actions; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.apache.struts2.interceptor.ServletRequestAware; import org.nuiton.scmwebeditor.api.ScmConnection; import org.nuiton.scmwebeditor.api.ScmFileManager; @@ -31,7 +29,6 @@ import org.nuiton.scmwebeditor.api.dto.CreateDirectoryDto; import org.nuiton.scmwebeditor.api.dto.result.CreateDirectoryResultDto; import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.io.File; import java.text.Normalizer; @@ -43,8 +40,6 @@ public class CreateDirectoryAction extends AbstractScmWebEditorAction implements private static final long serialVersionUID = 4244339447567114412L; - private static final Log log = LogFactory.getLog(CreateDirectoryAction.class); - public static final String REDIRECT = "redirect"; /** the username to use to connect to the repository */ @@ -71,9 +66,6 @@ public class CreateDirectoryAction extends AbstractScmWebEditorAction implements /** equals true if an error occurs */ protected boolean error; - /** the HTTP request sent to the server */ - protected transient HttpServletRequest request; - /** the full path of the root */ protected String fileRoot; @@ -120,8 +112,6 @@ public class CreateDirectoryAction extends AbstractScmWebEditorAction implements public void setError(boolean error) { this.error = error; } - public HttpServletRequest getRequest() { return request; } - public String getFileRoot() { return fileRoot; } public void setFileRoot(String fileRoot) { this.fileRoot = fileRoot; } @@ -222,9 +212,4 @@ public class CreateDirectoryAction extends AbstractScmWebEditorAction implements return SUCCESS; } - - @Override - public void setServletRequest(HttpServletRequest request) { - this.request = request; - } } diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/DownloadFileAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/DownloadFileAction.java index 2b439f9..5e8a7c8 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/DownloadFileAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/DownloadFileAction.java @@ -23,13 +23,11 @@ package org.nuiton.scmwebeditor.uiweb.actions; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.struts2.interceptor.ServletResponseAware; import org.nuiton.scmwebeditor.api.ScmConnection; import org.nuiton.scmwebeditor.api.ScmProvider; import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.*; import java.text.Normalizer; @@ -37,16 +35,13 @@ import java.text.Normalizer; /** * Allows to download the file at the given path */ -public class DownloadFileAction extends ScmWebEditorMainAction implements ServletResponseAware { +public class DownloadFileAction extends ScmWebEditorMainAction { private static final Log log = LogFactory.getLog(DownloadFileAction.class); /** the path to the root of the repository */ protected String repositoryRoot; - /** the HTTP response to send to the client */ - protected HttpServletResponse response; - public String getRepositoryRoot() { return repositoryRoot; } @@ -107,7 +102,9 @@ public class DownloadFileAction extends ScmWebEditorMainAction implements Servle outs.close(); in.close(); } catch (IOException e) { - e.printStackTrace(); + if (log.isErrorEnabled()) { + log.error("Can not read file " + fileToDownload, e); + } } } else { return ERROR; @@ -115,9 +112,4 @@ public class DownloadFileAction extends ScmWebEditorMainAction implements Servle return SUCCESS; } - - @Override - public void setServletResponse(HttpServletResponse response) { - this.response = response; - } } diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/EditAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/EditAction.java index 449f11e..9eec74b 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/EditAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/EditAction.java @@ -50,7 +50,7 @@ public class EditAction extends ScmWebEditorMainAction { private static final Log log = LogFactory.getLog(EditAction.class); - protected final String NOT_EDITABLE = "notEditable"; + protected static final String NOT_EDITABLE = "notEditable"; /** the name of the selected branch */ protected String selectedBranch; @@ -185,10 +185,12 @@ public class EditAction extends ScmWebEditorMainAction { } } - String[] resCookie = usernameDecode.split(","); - if (resCookie.length == 2) { - username = resCookie[0]; - pw = resCookie[1]; + if (usernameDecode != null) { + String[] resCookie = usernameDecode.split(","); + if (resCookie.length == 2) { + username = resCookie[0]; + pw = resCookie[1]; + } } } @@ -196,7 +198,9 @@ public class EditAction extends ScmWebEditorMainAction { if (username != null && pw != null) { if (!username.equals("") && !pw.equals("")) { + Cookie authCookie = null; + try { authCookie = new Cookie(repositoryUUID, bf.encrypt((username + "," + pw).getBytes("UTF-8"), privateKey).toBase64()); } catch (UnsupportedEncodingException e) { @@ -204,8 +208,11 @@ public class EditAction extends ScmWebEditorMainAction { log.error("Can not get a String from UTF-8 encoding"); } } - authCookie.setMaxAge(60 * 60 * 24 * 365); - response.addCookie(authCookie); + + if (authCookie != null) { + authCookie.setMaxAge(60 * 60 * 24 * 365); + response.addCookie(authCookie); + } } } diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/GetImageAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/GetImageAction.java index d2a20ec..8eb49b9 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/GetImageAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/GetImageAction.java @@ -23,7 +23,6 @@ package org.nuiton.scmwebeditor.uiweb.actions; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.struts2.interceptor.ServletRequestAware; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; @@ -31,11 +30,12 @@ import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; +import java.util.Arrays; /** * Gets the image at the given path */ -public class GetImageAction extends ScmWebEditorMainAction implements ServletRequestAware { +public class GetImageAction extends ScmWebEditorMainAction { private static final Log log = LogFactory.getLog(GetImageAction.class); @@ -51,7 +51,14 @@ public class GetImageAction extends ScmWebEditorMainAction implements ServletReq public byte[] getImageInByte() { return imageInByte; } - public void setImageInByte(byte[] imageInByte) { this.imageInByte = imageInByte; } + public void setImageInByte(byte[] imageInByte) { + + this.imageInByte = new byte[0]; + + if (imageInByte != null){ + this.imageInByte = Arrays.copyOf(imageInByte, imageInByte.length); + } + } public String getImagePath() { return imagePath; } @@ -81,6 +88,12 @@ public class GetImageAction extends ScmWebEditorMainAction implements ServletReq } } + byte[] imageInByteCopy = new byte[0]; + + if (imageInByte != null) { + imageInByteCopy = Arrays.copyOf(imageInByte, imageInByte.length); + } + return imageInByte; } diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/ImageBytesResult.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ImageBytesResult.java similarity index 93% rename from swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/ImageBytesResult.java rename to swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ImageBytesResult.java index 25ea9e5..fece6ce 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/ImageBytesResult.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ImageBytesResult.java @@ -19,12 +19,11 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package org.nuiton.scmwebeditor.uiweb; +package org.nuiton.scmwebeditor.uiweb.actions; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.Result; import org.apache.struts2.ServletActionContext; -import org.nuiton.scmwebeditor.uiweb.actions.GetImageAction; import javax.servlet.http.HttpServletResponse; diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/MoveFileAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/MoveFileAction.java index 80c2a31..368d26a 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/MoveFileAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/MoveFileAction.java @@ -21,9 +21,6 @@ */ package org.nuiton.scmwebeditor.uiweb.actions; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts2.interceptor.ServletRequestAware; import org.nuiton.scmwebeditor.api.ScmConnection; import org.nuiton.scmwebeditor.api.ScmFileManager; import org.nuiton.scmwebeditor.api.ScmProvider; @@ -31,7 +28,6 @@ import org.nuiton.scmwebeditor.api.dto.MoveFileDto; import org.nuiton.scmwebeditor.api.dto.result.MoveFileResultDto; import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.io.File; import java.text.Normalizer; @@ -39,12 +35,10 @@ import java.text.Normalizer; /** * Moves a file in the repository */ -public class MoveFileAction extends AbstractScmWebEditorAction implements ServletRequestAware { +public class MoveFileAction extends AbstractScmWebEditorAction { private static final long serialVersionUID = 4244339447567114412L; - private static final Log log = LogFactory.getLog(MoveFileAction.class); - public static final String REDIRECT = "redirect"; /** the username to use to connect to the repository */ @@ -65,9 +59,6 @@ public class MoveFileAction extends AbstractScmWebEditorAction implements Servle /** equals true if an error occurs */ protected boolean error; - /** the HTTP request sent to the server */ - protected transient HttpServletRequest request; - /** the full path to the root */ protected String scmPath; @@ -123,8 +114,6 @@ public class MoveFileAction extends AbstractScmWebEditorAction implements Servle public void setError(boolean error) { this.error = error; } - public HttpServletRequest getRequest() { return request; } - public String getScmPath() { return scmPath; } public void setScmPath(String scmPath) { this.scmPath = scmPath; } @@ -231,9 +220,4 @@ public class MoveFileAction extends AbstractScmWebEditorAction implements Servle return SUCCESS; } - - @Override - public void setServletRequest(HttpServletRequest request) { - this.request = request; - } } diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/RemoveDirectoryAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/RemoveDirectoryAction.java index 1d3b2ee..df2ae20 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/RemoveDirectoryAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/RemoveDirectoryAction.java @@ -21,9 +21,6 @@ */ package org.nuiton.scmwebeditor.uiweb.actions; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts2.interceptor.ServletRequestAware; import org.nuiton.scmwebeditor.api.ScmConnection; import org.nuiton.scmwebeditor.api.ScmFileManager; import org.nuiton.scmwebeditor.api.ScmProvider; @@ -31,7 +28,6 @@ import org.nuiton.scmwebeditor.api.dto.RemoveDirectoryDto; import org.nuiton.scmwebeditor.api.dto.result.RemoveDirectoryResultDto; import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.io.File; import java.text.Normalizer; @@ -39,12 +35,10 @@ import java.text.Normalizer; /** * Removes a directory on the repository */ -public class RemoveDirectoryAction extends AbstractScmWebEditorAction implements ServletRequestAware { +public class RemoveDirectoryAction extends AbstractScmWebEditorAction { private static final long serialVersionUID = 4244339447567114412L; - private static final Log log = LogFactory.getLog(RemoveDirectoryAction.class); - public static final String REDIRECT = "redirect"; /** the username to use to connect to the repository */ @@ -68,9 +62,6 @@ public class RemoveDirectoryAction extends AbstractScmWebEditorAction implements /** the URL the root of the repository */ protected String scmRoot; - /** the HTTP request sent to the server */ - protected transient HttpServletRequest request; - /** the full path of the root */ protected String fileRoot; @@ -117,8 +108,6 @@ public class RemoveDirectoryAction extends AbstractScmWebEditorAction implements public void setError(boolean error) { this.error = error; } - public HttpServletRequest getRequest() { return request; } - public String getFileRoot() { return fileRoot; } public void setFileRoot(String fileRoot) { this.fileRoot = fileRoot; } @@ -214,9 +203,4 @@ public class RemoveDirectoryAction extends AbstractScmWebEditorAction implements return SUCCESS; } - - @Override - public void setServletRequest(HttpServletRequest request) { - this.request = request; - } } diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/RemoveFileAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/RemoveFileAction.java index 1e5a3e3..459cf95 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/RemoveFileAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/RemoveFileAction.java @@ -21,9 +21,6 @@ */ package org.nuiton.scmwebeditor.uiweb.actions; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts2.interceptor.ServletRequestAware; import org.nuiton.scmwebeditor.api.ScmConnection; import org.nuiton.scmwebeditor.api.ScmFileManager; import org.nuiton.scmwebeditor.api.ScmProvider; @@ -31,7 +28,6 @@ import org.nuiton.scmwebeditor.api.dto.RemoveFileDto; import org.nuiton.scmwebeditor.api.dto.result.RemoveFileResultDto; import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.io.File; import java.text.Normalizer; @@ -39,12 +35,10 @@ import java.text.Normalizer; /** * Removes a file from the repository */ -public class RemoveFileAction extends AbstractScmWebEditorAction implements ServletRequestAware { +public class RemoveFileAction extends AbstractScmWebEditorAction { private static final long serialVersionUID = 4244339447567114412L; - private static final Log log = LogFactory.getLog(RemoveFileAction.class); - public static final String REDIRECT = "redirect"; /** the username to use to connect to the repository */ @@ -65,9 +59,6 @@ public class RemoveFileAction extends AbstractScmWebEditorAction implements Serv /** equals true if an error occurs */ protected boolean error; - /** the HTTP request sent to the server */ - protected transient HttpServletRequest request; - /** the full path to the root */ protected String scmPath; @@ -117,8 +108,6 @@ public class RemoveFileAction extends AbstractScmWebEditorAction implements Serv public void setError(boolean error) { this.error = error; } - public HttpServletRequest getRequest() { return request; } - public String getScmPath() { return scmPath; } public void setScmPath(String scmPath) { this.scmPath = scmPath; } @@ -214,9 +203,4 @@ public class RemoveFileAction extends AbstractScmWebEditorAction implements Serv return SUCCESS; } - - @Override - public void setServletRequest(HttpServletRequest request) { - this.request = request; - } } diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ScmWebEditorCommitAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ScmWebEditorCommitAction.java index c621120..2f06b9d 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ScmWebEditorCommitAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ScmWebEditorCommitAction.java @@ -269,16 +269,21 @@ public class ScmWebEditorCommitAction extends AbstractScmWebEditorAction impleme log.error("Can not create a String with UTF-8 encoding"); } } - String[] resCookie = usernameDecode.split(","); - if (resCookie.length == 2) { - username = resCookie[0]; - pw = resCookie[1]; + + if (usernameDecode != null) { + String[] resCookie = usernameDecode.split(","); + if (resCookie.length == 2) { + username = resCookie[0]; + pw = resCookie[1]; + } } } if (saveCookie) { if (username != null && pw != null) { + Cookie authCookie = null; + try { authCookie = new Cookie(repositoryUUID, bf.encrypt((username + "," + pw).getBytes("UTF-8"), privateKey).toBase64()); } catch (UnsupportedEncodingException e) { @@ -286,8 +291,11 @@ public class ScmWebEditorCommitAction extends AbstractScmWebEditorAction impleme log.error("Can not get bytes from UTF-8 encoding"); } } - authCookie.setMaxAge(60 * 60 * 24 * 365); - response.addCookie(authCookie); + + if (authCookie != null) { + authCookie.setMaxAge(60 * 60 * 24 * 365); + response.addCookie(authCookie); + } } } diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/UploadFileAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/UploadFileAction.java index e3a393c..30a8279 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/UploadFileAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/UploadFileAction.java @@ -21,9 +21,6 @@ */ package org.nuiton.scmwebeditor.uiweb.actions; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.struts2.interceptor.ServletRequestAware; import org.nuiton.scmwebeditor.api.ScmConnection; import org.nuiton.scmwebeditor.api.ScmFileManager; import org.nuiton.scmwebeditor.api.ScmProvider; @@ -31,7 +28,6 @@ import org.nuiton.scmwebeditor.api.dto.UploadFileDto; import org.nuiton.scmwebeditor.api.dto.result.UploadFileResultDto; import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.io.File; import java.text.Normalizer; @@ -39,12 +35,10 @@ import java.text.Normalizer; /** * Uploads a file from the client to the repository */ -public class UploadFileAction extends AbstractScmWebEditorAction implements ServletRequestAware { +public class UploadFileAction extends AbstractScmWebEditorAction { private static final long serialVersionUID = 4244339447567114412L; - private static final Log log = LogFactory.getLog(UploadFileAction.class); - public static final String REDIRECT = "redirect"; /** the file to upload */ @@ -80,9 +74,6 @@ public class UploadFileAction extends AbstractScmWebEditorAction implements Serv /** equals true if an error occurs */ protected boolean error; - /** the HTTP request sent to the server */ - protected transient HttpServletRequest request; - public File getUpload() { return upload; @@ -160,8 +151,6 @@ public class UploadFileAction extends AbstractScmWebEditorAction implements Serv public String getScmPath() { return scmPath; } - public HttpServletRequest getRequest() { return request; } - /** * Execution of the upload action @@ -245,9 +234,4 @@ public class UploadFileAction extends AbstractScmWebEditorAction implements Serv return SUCCESS; } - - @Override - public void setServletRequest(HttpServletRequest request) { - this.request = request; - } } diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ViewHistoryAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ViewHistoryAction.java index 7eb17a6..9fdb086 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ViewHistoryAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ViewHistoryAction.java @@ -35,6 +35,7 @@ import javax.servlet.http.Cookie; import javax.servlet.http.HttpSession; import java.io.File; import java.io.IOException; +import java.io.UnsupportedEncodingException; import java.text.Normalizer; /** @@ -116,12 +117,21 @@ public class ViewHistoryAction extends ScmWebEditorMainAction { if (usernamepwCookie != null) { - String usernameDecode = new String(bf.decrypt(Base64.decode(usernamepwCookie), privateKey).getBytes()); + String usernameDecode = null; + try { + usernameDecode = new String(bf.decrypt(Base64.decode(usernamepwCookie), privateKey).getBytes(), "UTF-8"); + } catch (UnsupportedEncodingException e) { + if (log.isErrorEnabled()) { + log.error("Can not create a String with UTF-8 encoding"); + } + } - String[] resCookie = usernameDecode.split(","); - if (resCookie.length == 2) { - username = resCookie[0]; - pw = resCookie[1]; + if (usernameDecode != null) { + String[] resCookie = usernameDecode.split(","); + if (resCookie.length == 2) { + username = resCookie[0]; + pw = resCookie[1]; + } } } diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ViewImageAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ViewImageAction.java index 24a4a31..d341de1 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ViewImageAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ViewImageAction.java @@ -35,6 +35,7 @@ import javax.naming.AuthenticationException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpSession; import java.io.File; +import java.io.UnsupportedEncodingException; import java.text.Normalizer; import java.util.Arrays; import java.util.List; @@ -46,9 +47,9 @@ public class ViewImageAction extends ScmWebEditorMainAction { private static final Log log = LogFactory.getLog(ViewImageAction.class); - protected final String VIEW_IMAGE = "viewImage"; + protected static final String VIEW_IMAGE = "viewImage"; - protected final List<String> SUPPORTED_IMAGE_FORMATS = Arrays.asList("jpg", "jpeg", "png", "gif"); + protected static final List<String> SUPPORTED_IMAGE_FORMATS = Arrays.asList("jpg", "jpeg", "png", "gif"); /** the name of the selected branch */ protected String selectedBranch; @@ -150,12 +151,21 @@ public class ViewImageAction extends ScmWebEditorMainAction { if (usernamepwCookie != null) { - String usernameDecode = new String(bf.decrypt(Base64.decode(usernamepwCookie), privateKey).getBytes()); + String usernameDecode = null; + try { + usernameDecode = new String(bf.decrypt(Base64.decode(usernamepwCookie), privateKey).getBytes(), "UTF-8"); + } catch (UnsupportedEncodingException e) { + if (log.isErrorEnabled()) { + log.error("Can not create a String with UTF-8 encoding"); + } + } - String[] resCookie = usernameDecode.split(","); - if (resCookie.length == 2) { - username = resCookie[0]; - pw = resCookie[1]; + if (usernameDecode != null) { + String[] resCookie = usernameDecode.split(","); + if (resCookie.length == 2) { + username = resCookie[0]; + pw = resCookie[1]; + } } } @@ -163,9 +173,21 @@ public class ViewImageAction extends ScmWebEditorMainAction { if (username != null && pw != null) { if (!username.equals("") && !pw.equals("")) { - Cookie authCookie = new Cookie(repositoryUUID, bf.encrypt((username + "," + pw).getBytes(), privateKey).toBase64()); - authCookie.setMaxAge(60 * 60 * 24 * 365); - response.addCookie(authCookie); + + Cookie authCookie = null; + + try { + authCookie = new Cookie(repositoryUUID, bf.encrypt((username + "," + pw).getBytes("UTF-8"), privateKey).toBase64()); + } catch (UnsupportedEncodingException e) { + if (log.isErrorEnabled()) { + log.error("Can not get a String from UTF-8 encoding"); + } + } + + if (authCookie != null) { + authCookie.setMaxAge(60 * 60 * 24 * 365); + response.addCookie(authCookie); + } } } diff --git a/swe-ui-web/src/main/resources/struts.xml b/swe-ui-web/src/main/resources/struts.xml index 192a2fb..d038ef3 100644 --- a/swe-ui-web/src/main/resources/struts.xml +++ b/swe-ui-web/src/main/resources/struts.xml @@ -41,7 +41,7 @@ <result-types> <result-type name="json" class="org.apache.struts2.json.JSONResult"/> - <result-type name="imageResult" class="org.nuiton.scmwebeditor.uiweb.ImageBytesResult"/> + <result-type name="imageResult" class="org.nuiton.scmwebeditor.uiweb.actions.ImageBytesResult"/> </result-types> <interceptors> -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm