r199 - in trunk/src: main/java/org/nuiton/scmwebeditor main/java/org/nuiton/scmwebeditor/actions main/webapp/WEB-INF/content main/webapp/js test/java/org/nuiton/scmwebeditor
Author: kcardineaud Date: 2011-08-03 17:54:19 +0200 (Wed, 03 Aug 2011) New Revision: 199 Url: http://nuiton.org/repositories/revision/scmwebeditor/199 Log: Remove all informations stock in session Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java trunk/src/main/java/org/nuiton/scmwebeditor/SvnSession.java trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp trunk/src/main/webapp/WEB-INF/content/save.jsp trunk/src/main/webapp/js/cancelRedirect.js trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java =================================================================== --- trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java 2011-08-03 10:23:29 UTC (rev 198) +++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java 2011-08-03 15:54:19 UTC (rev 199) @@ -225,17 +225,6 @@ } - protected String getRedirectUrl(SvnSession svnSess) { - StringBuilder buffer = new StringBuilder(); - buffer.append(svnSess.getScmEditorUrl()); - buffer.append('?').append(PARAMETER_ADDRESS).append('=').append(svnSess.getSvnPath()+svnSess.getFileName()); - - - String url = buffer.toString(); - return url; - } - - protected String getMimeType(File file) throws IOException, SAXException, TikaException { InputStream is = new FileInputStream(file); String result = null; Modified: trunk/src/main/java/org/nuiton/scmwebeditor/SvnSession.java =================================================================== --- trunk/src/main/java/org/nuiton/scmwebeditor/SvnSession.java 2011-08-03 10:23:29 UTC (rev 198) +++ trunk/src/main/java/org/nuiton/scmwebeditor/SvnSession.java 2011-08-03 15:54:19 UTC (rev 199) @@ -43,10 +43,6 @@ private static final Log log = LogFactory.getLog(SvnSession.class); /** - * Url of scm editor - */ - protected StringBuffer scmEditorUrl; - /** * svn path without fileName */ protected String svnPath; @@ -55,18 +51,6 @@ */ protected String fileName; /** - * Projectname - */ - protected String projectUrl; - /** - * user's login - */ - protected String login; - /** - * user's password - */ - protected String password; - /** * Temp directory for checkout */ protected File checkoutdir; @@ -88,15 +72,14 @@ protected SVNClientManager manager; - public SvnSession( - String svnPath, - String fileName, - String projectUrl, - StringBuffer scmEditorUrl) { - this.scmEditorUrl = scmEditorUrl; - this.svnPath = svnPath; - this.fileName = fileName; - this.projectUrl = projectUrl; + public SvnSession ( + String address) throws StringIndexOutOfBoundsException { + + this.svnPath = address.substring(0,address.lastIndexOf("/")); + + this.fileName = address.substring(address.lastIndexOf("/")+1); + + try { this.remoteUrl = SVNURL.parseURIEncoded(svnPath); } catch (SVNException e) { @@ -109,9 +92,7 @@ } public void updateAuthentication(String login, String password) { - setLogin(login); - setPassword(password); - setAuthManager(SVNWCUtil.createDefaultAuthenticationManager(getLogin(), getPassword())); + setAuthManager(SVNWCUtil.createDefaultAuthenticationManager(login, password)); setManager(SVNClientManager.newInstance(getSvnOption(), getAuthManager())); } @@ -143,14 +124,6 @@ this.fileName = fileName; } - public String getLogin() { - return login; - } - - public void setLogin(String login) { - this.login = login; - } - public SVNClientManager getManager() { return manager; } @@ -159,22 +132,6 @@ this.manager = manager; } - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getProjectUrl() { - return projectUrl; - } - - public void setProjectUrl(String projectUrl) { - this.projectUrl = projectUrl; - } - public SVNURL getRemoteUrl() { return remoteUrl; } @@ -199,13 +156,6 @@ this.svnPath = svnPath; } - public StringBuffer getScmEditorUrl() { - return scmEditorUrl; - } - public void setScmEditorUrl(StringBuffer scmEditorUrl) { - this.scmEditorUrl = scmEditorUrl; - } - } Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java =================================================================== --- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java 2011-08-03 10:23:29 UTC (rev 198) +++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java 2011-08-03 15:54:19 UTC (rev 199) @@ -2,12 +2,8 @@ import java.io.ByteArrayOutputStream; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.struts2.interceptor.ServletRequestAware; import org.nuiton.scmwebeditor.ScmWebEditorBaseAction; import org.nuiton.scmwebeditor.SvnSession; import org.tmatesoft.svn.core.SVNException; @@ -20,39 +16,59 @@ import com.opensymphony.xwork2.Action; -public class ResetAction extends ScmWebEditorBaseAction implements ServletRequestAware { +public class ResetAction extends ScmWebEditorBaseAction { private static final long serialVersionUID = -1154924826535371319L; private static final Log log = LogFactory.getLog(ResetAction.class); - protected HttpServletRequest request; + protected String lastRevision; - protected String lastRevision; + protected String address; + + protected String username; + + protected String pw; public String getLastRevision() { return lastRevision; } + public void setAddress(String address) { + this.address = address; + } + public void setUsername(String username) { + this.username = username; + } + public void setPw(String pw) { + this.pw = pw; + } + + public String execute() { - HttpSession httpSession = request.getSession(true); + + SvnSession svnSess = null; - SvnSession svnSess = getSvnSession(httpSession); + try { + svnSess = new SvnSession(address); + } catch (StringIndexOutOfBoundsException e) { + if(log.isErrorEnabled()) { + log.error("Can't reach the svn repository"); + } + return "errorPath"; + } - - String login = svnSess.getLogin(); - String pw = svnSess.getPassword(); String url = svnSess.getSvnPath(); String file = svnSess.getFileName(); //Si le login ou le mot de passe ne sont pas renseignes, on tente de se connecter en anonyme - if(login==null && pw==null) { - login = "anonymous"; + if(username==null && pw==null) { + username = "anonymous"; pw = "anonymous"; } @@ -60,7 +76,7 @@ try { repository = SVNRepositoryFactory.create( SVNURL.parseURIEncoded( url ) ); - ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager( login , pw ); + ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager( username , pw ); repository.setAuthenticationManager( authManager ); SVNNodeKind nodeKind = repository.checkPath( file , -1 ); @@ -90,8 +106,8 @@ catch (SVNException e) { if(log.isErrorEnabled()) { log.error("Can't reach the svn repository"); - return "errorPath"; } + return "errorPath"; } if(log.isInfoEnabled()) { @@ -102,13 +118,6 @@ } - - - - @Override - public void setServletRequest(HttpServletRequest request) { - this.request = request; - } } Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java =================================================================== --- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-08-03 10:23:29 UTC (rev 198) +++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-08-03 15:54:19 UTC (rev 199) @@ -42,6 +42,7 @@ protected String address; protected String lastText; protected String fileType; + protected String projectUrl; protected HttpServletRequest request; @@ -109,7 +110,18 @@ public void setLastText(String lastText) { this.lastText = lastText; } + + public String getProjectUrl() { + return projectUrl; + } + + public void setProjectUrl(String projectUrl) { + this.projectUrl = projectUrl; + } + + + protected boolean testRstParsing(String newText) { try { JRST.generate(JRST.TYPE_HTML, newText); @@ -140,13 +152,22 @@ HttpSession httpSession = request.getSession(true); - SvnSession svnSess = getSvnSession(httpSession); + SvnSession svnSess = null; -// Resetting authentification information and manager - svnSess.updateAuthentication( - svnSess.getLogin() != null && !svnSess.getLogin().equalsIgnoreCase("") ? svnSess.getLogin() : username, - svnSess.getPassword() != null && !svnSess.getPassword().equalsIgnoreCase("") ? svnSess.getPassword() : pw); + + log.info("ADDRESS : "+address); + try { + svnSess = new SvnSession(address); + } catch (StringIndexOutOfBoundsException e) { + if(log.isDebugEnabled()) { + log.debug("Parameter is not valid ",e); + } + return "error"; + } + + svnSess.updateAuthentication( username, pw); + File checkoutdir = null; try { checkoutdir = FileUtil.createTempDirectory("scm_", ""); @@ -191,15 +212,8 @@ request.setAttribute("lastText", lastText); request.setAttribute(ATTRIBUTE_ORIG_TEXT, StringEscapeUtils.escapeHtml(originalText)); request.setAttribute(ATTRIBUTE_INVALIDATE_MAX_TIME, (httpSession.getMaxInactiveInterval() / 60)); - request.setAttribute(ATTRIBUTE_LOGIN, (svnSess.getLogin() != null && !svnSess.getLogin().equalsIgnoreCase("") ? svnSess.getLogin() : null)); - request.setAttribute(ATTRIBUTE_IS_LOGIN, (svnSess.getLogin() != null && svnSess.getPassword() != null && !svnSess.getLogin().equalsIgnoreCase("") && !svnSess.getPassword().equalsIgnoreCase(""))); - request.setAttribute(ATTRIBUTE_PROJECT_URL, svnSess.getProjectUrl()); - request.setAttribute(PARAMETER_SCM_EDITOR_URL, svnSess.getScmEditorUrl()); - if (log.isDebugEnabled()) { - log.debug("l'url est : " + svnSess.getScmEditorUrl()); - } request.setAttribute(ATTRIBUTE_SCM_EDITOR_URI, request.getRequestURI()); - request.setAttribute(ATTRIBUTE_PREVIEW_SERVLET_URL, request.getContextPath() + "/previewservlet"); + // End on first part @@ -208,7 +222,7 @@ * après avoir supprimé le repertoire temporaire */ delTempDirectory(checkoutdir); - request.setAttribute(PARAMETER_SCM_EDITOR_URL, svnSess.getProjectUrl()); + return "error"; } catch (IOException e) { log.error("Can't find the checkout file",e); @@ -248,17 +262,12 @@ if(log.isErrorEnabled()) { log.error("AUTH FAIL"); } - svnSess.setLogin(null); - svnSess.setPassword(null); + // if authentication failed edition page is reload form user's relogin request.setAttribute("address", address); request.setAttribute(ATTRIBUTE_ORIG_TEXT, StringEscapeUtils.escapeHtml(newText)); request.setAttribute(ATTRIBUTE_INVALIDATE_MAX_TIME, (httpSession.getMaxInactiveInterval() / 60)); - request.setAttribute(ATTRIBUTE_LOGIN, (svnSess.getLogin() != null && !svnSess.getLogin().equalsIgnoreCase("") ? svnSess.getLogin() : null)); - request.setAttribute(ATTRIBUTE_IS_LOGIN, false); - request.setAttribute(ATTRIBUTE_PROJECT_URL, svnSess.getProjectUrl()); - request.setAttribute(PARAMETER_SCM_EDITOR_URL, svnSess.getScmEditorUrl()); request.setAttribute(ATTRIBUTE_SCM_EDITOR_URI, request.getRequestURI()); request.setAttribute(ATTRIBUTE_PREVIEW_SERVLET_URL, request.getContextPath() + "/previewservlet"); @@ -272,7 +281,6 @@ } //Suppression du repertoire temporaire delTempDirectory(checkoutdir); - request.setAttribute(ATTRIBUTE_REDIRECT_URL, getRedirectUrl(svnSess)); return "error"; } @@ -281,8 +289,6 @@ //Suppression du repertoire temporaire delTempDirectory(checkoutdir); } - //if commit success user is redirect on the project page - request.setAttribute(ATTRIBUTE_REDIRECTION_URL, svnSess.getProjectUrl()); if(log.isDebugEnabled()) { log.debug("End of commit"); Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java =================================================================== --- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-03 10:23:29 UTC (rev 198) +++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-03 15:54:19 UTC (rev 199) @@ -79,7 +79,16 @@ this.address = address; } - + public String getFormat() { + return format; + } + + + public void setFormat(String format) { + this.format = format; + } + + public String getProjectUrl() { return projectUrl; } @@ -177,38 +186,24 @@ //SvnSession object creation if doesn't already exist SvnSession svnSess = getSvnSession(httpSession); - String relativePath; - String scmFileName; - try { - relativePath = address.substring(0,address.lastIndexOf("/")); - scmFileName = address.substring(address.lastIndexOf("/")+1); + + + try { + svnSess = new SvnSession(address); } catch (StringIndexOutOfBoundsException e) { if(log.isDebugEnabled()) { log.debug("Parameter is not valid ",e); } - return "errorPath"; + return "errorPath"; } - format = scmFileName.substring(scmFileName.lastIndexOf(".")+1); + format = svnSess.getFileName().substring(svnSess.getFileName().lastIndexOf(".")+1); - + String originalText = ""; - svnSess = new SvnSession( - relativePath, - scmFileName, - projectUrl, - request.getRequestURL()); - - - setSvnSession(httpSession, svnSess); - - - String originalText =""; - - String login = this.getUsername(); String pw = this.getPw(); String url = svnSess.getSvnPath(); @@ -218,10 +213,7 @@ login = "anonymous"; pw = "anonymous"; } - else { - svnSess.setLogin(login); - svnSess.setPassword(pw); - } + SVNRepository repository = null; @@ -366,18 +358,10 @@ - request.setAttribute(PARAMETER_FORMAT, format); request.setAttribute(ATTRIBUTE_ORIG_TEXT, StringEscapeUtils.escapeHtml(originalText)); request.setAttribute(ATTRIBUTE_INVALIDATE_MAX_TIME, (httpSession.getMaxInactiveInterval() / 60)); - request.setAttribute(ATTRIBUTE_LOGIN, (svnSess.getLogin() != null && !svnSess.getLogin().equalsIgnoreCase("") ? svnSess.getLogin() : null)); - request.setAttribute(ATTRIBUTE_IS_LOGIN, (svnSess.getLogin() != null && svnSess.getPassword() != null && !svnSess.getLogin().equalsIgnoreCase("") && !svnSess.getPassword().equalsIgnoreCase(""))); - request.setAttribute(ATTRIBUTE_PROJECT_URL, svnSess.getProjectUrl()); - request.setAttribute(PARAMETER_SCM_EDITOR_URL, svnSess.getScmEditorUrl()); - if (log.isDebugEnabled()) { - log.debug("l'url est : " + svnSess.getScmEditorUrl()); - } + request.setAttribute(ATTRIBUTE_PROJECT_URL, projectUrl); request.setAttribute(ATTRIBUTE_SCM_EDITOR_URI, request.getRequestURI()); - request.setAttribute(ATTRIBUTE_PREVIEW_SERVLET_URL, request.getContextPath() + "/previewservlet"); if(log.isInfoEnabled()) { log.info("IP client : "+request.getRemoteAddr() + " , get file : "+address+ ". File's mimetype : "+mimeType); Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java =================================================================== --- trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java 2011-08-03 10:23:29 UTC (rev 198) +++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java 2011-08-03 15:54:19 UTC (rev 199) @@ -106,10 +106,7 @@ SvnSession svnSess = getSvnSession(httpSession); -// Resetting authentification information and manager - svnSess.updateAuthentication(username,pw); - - + /* * Checkout process */ Modified: trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp =================================================================== --- trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-03 10:23:29 UTC (rev 198) +++ trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-03 15:54:19 UTC (rev 199) @@ -62,7 +62,7 @@ </center> - <form method="post" action=commit.action id="editForm"> + <form method="POST" action=commit.action id="editForm"> <% if (request.getAttribute("format")!=null && request.getAttribute("format").equals("rst")){ %> @@ -80,7 +80,6 @@ } else { valueTextarea = (String) request.getAttribute("OrigText"); } - %> @@ -148,15 +147,13 @@ <s:textfield required="true" label="%{scm.commitMessage}" name="commitMessage" title="%{scm.commitMessageTitle}" /> - <%if (request.getAttribute("IsLogin").equals(false) == true){ - %> - <%if (request.getAttribute("badLogin")!=null && request.getAttribute("badLogin").equals(true)) { %> + <%if (request.getAttribute("badLogin")!=null && request.getAttribute("badLogin").equals(true)) { %> <p> <font color="red"> Bad username or password </font> </p> - <% } %> + <% } %> <p> @@ -177,12 +174,7 @@ <s:password accesskey="P" size="12" label="%{scm.password}" name="pw" title="%{scm.passwordTitle}" /> </div> - <% - } else { - %><p><s:text name="scm.logAs"/> <%=request.getAttribute("Login")%></p> - <input type="hidden" NAME=username /> - <input type="hidden" NAME=pw /><% - }%> + <input type="hidden" name="address" value="<%=request.getAttribute("address")%>"/> <input type="hidden" id="origText" name="origText" value="<%=request.getAttribute("OrigText")%>"/> <% if(request.getAttribute("lastText")!=null) { %> @@ -247,15 +239,17 @@ </s:set> <s:set id="scm.resetTitle"> <s:text name="scm.resetTitle"/> - </s:set> - <sj:submit + </s:set> + <sj:submit title="%{scm.resetTitle}" + formIds="editForm" id="resetButton" targets="resetResult" value="%{scm.reset}" button="true" href="reset.action" - /> + > + </sj:submit> <div id="resetResult"></div> Modified: trunk/src/main/webapp/WEB-INF/content/save.jsp =================================================================== --- trunk/src/main/webapp/WEB-INF/content/save.jsp 2011-08-03 10:23:29 UTC (rev 198) +++ trunk/src/main/webapp/WEB-INF/content/save.jsp 2011-08-03 15:54:19 UTC (rev 199) @@ -3,7 +3,7 @@ - <s:if test="result=='authError'" > + <s:if test="result=='login'" > <h4> <font color="red"> Bad username or password, can't save modification</font> </h4> </s:if> <s:elseif test="result=='error'" > Modified: trunk/src/main/webapp/js/cancelRedirect.js =================================================================== --- trunk/src/main/webapp/js/cancelRedirect.js 2011-08-03 10:23:29 UTC (rev 198) +++ trunk/src/main/webapp/js/cancelRedirect.js 2011-08-03 15:54:19 UTC (rev 199) @@ -6,8 +6,8 @@ function cancelRedirect(text, url) { if (confirm(text)){ - document.location.href(url.value); - return false; + document.location.href=url.value; + return false; } else {return false}; } \ No newline at end of file Modified: trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java =================================================================== --- trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java 2011-08-03 10:23:29 UTC (rev 198) +++ trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java 2011-08-03 15:54:19 UTC (rev 199) @@ -97,7 +97,6 @@ SvnSession svnSess = new SvnSession( tgtURL.toString(), "testFile", - null, null); checkoutdirTest = FileUtil.createTempDirectory("scmCheckOutTest_", "");
participants (1)
-
kcardineaud@users.nuiton.org