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>.