You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by no...@apache.org on 2009/07/29 19:14:29 UTC

svn commit: r798982 - in /labs/hupa/src/main/java/org/apache/hupa: client/mvp/IMAPMessagePresenter.java client/mvp/IMAPMessageView.java server/servlet/DownloadAttachmentServlet.java

Author: norman
Date: Wed Jul 29 17:14:29 2009
New Revision: 798982

URL: http://svn.apache.org/viewvc?rev=798982&view=rev
Log:
replace user/password with sessionId on attachment download

Modified:
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java
    labs/hupa/src/main/java/org/apache/hupa/server/servlet/DownloadAttachmentServlet.java

Modified: labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java?rev=798982&r1=798981&r2=798982&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java Wed Jul 29 17:14:29 2009
@@ -59,7 +59,7 @@
 		public HasHTML getContent();
 		
 		public HasClickHandlers getDeleteButtonClick();
-		public void setAttachments(List<MessageAttachment> attachements, String username,  String password,  String folder,  long uid);
+		public void setAttachments(List<MessageAttachment> attachements, String sessionId,  String folder,  long uid);
 	}
 
 	public static final Place PLACE = new Place("IMAPMessage");
@@ -108,7 +108,7 @@
 		display.getTo().setText(toBuf.toString());;
 		display.getSubject().setText(message.getHeader().getSubject());
 		display.getContent().setHTML(message.getMessageContent().getText());
-		display.setAttachments(message.getMessageContent().getMessageAttachments(),user.getName(),user.getPassword(), folder.getFullName(),message.getUid());
+		display.setAttachments(message.getMessageContent().getMessageAttachments(),user.getSessionId(), folder.getFullName(),message.getUid());
 	}
 
 	@Override

Modified: labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java?rev=798982&r1=798981&r2=798982&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java Wed Jul 29 17:14:29 2009
@@ -31,7 +31,7 @@
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.ClickHandler;
 import com.google.gwt.event.dom.client.HasClickHandlers;
-import com.google.gwt.user.client.DOM;
+import com.google.gwt.user.client.Window;
 import com.google.gwt.user.client.ui.Composite;
 import com.google.gwt.user.client.ui.FlowPanel;
 import com.google.gwt.user.client.ui.Grid;
@@ -40,7 +40,6 @@
 import com.google.gwt.user.client.ui.HasText;
 import com.google.gwt.user.client.ui.Hyperlink;
 import com.google.gwt.user.client.ui.Label;
-import com.google.gwt.user.client.ui.RootPanel;
 import com.google.gwt.user.client.ui.ScrollPanel;
 import com.google.gwt.user.client.ui.VerticalPanel;
 import com.google.gwt.user.client.ui.Widget;
@@ -158,7 +157,7 @@
 	}
 
 	public void setAttachments(List<MessageAttachment> attachements,
-			final String username, final String password, final String folder,
+			final String sessionUid, final String folder,
 			final long uid) {
 		attachments.clear();
 		if (attachements != null) {
@@ -169,12 +168,11 @@
 				link.addClickHandler(new ClickHandler() {
 
 					public void onClick(ClickEvent event) {
-						DOM.setElementAttribute(RootPanel.get("__download")
-								.getElement(), "src", GWT.getModuleBaseURL()
-								+ "downloadAttachmentServlet?attachment_name="
+				
+						Window.open(GWT.getModuleBaseURL()+ "downloadAttachmentServlet?attachment_name="
 								+ a.getName() + "&folder_name=" + folder
-								+ "&message_uuid=" + uid + "&user=" + username
-								+ "&password=" + password);
+								+ "&message_uuid=" + uid + "&sessionId=" + sessionUid
+								,"_self", "");
 					}
 
 				});

Modified: labs/hupa/src/main/java/org/apache/hupa/server/servlet/DownloadAttachmentServlet.java
URL: http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/servlet/DownloadAttachmentServlet.java?rev=798982&r1=798981&r2=798982&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/server/servlet/DownloadAttachmentServlet.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/server/servlet/DownloadAttachmentServlet.java Wed Jul 29 17:14:29 2009
@@ -33,9 +33,11 @@
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
 
 import org.apache.commons.logging.Log;
 import org.apache.hupa.server.IMAPStoreCache;
+import org.apache.hupa.shared.data.User;
 
 import com.google.inject.Inject;
 import com.sun.mail.imap.IMAPFolder;
@@ -65,52 +67,56 @@
 			HttpServletResponse response) throws ServletException, IOException {
 		String message_uuid = request.getParameter("message_uuid");
 		String attachmentName = request.getParameter("attachment_name");
-		String user = request.getParameter("user");
-		String pass = request.getParameter("password");
+		String sessionId = request.getParameter("sessionId");
 		String folderName = request.getParameter("folder_name");
-		response.setContentType("application/download");
-		response.setHeader("Content-disposition", "attachment; filename="
-				+ attachmentName + "");
-
-		OutputStream out = response.getOutputStream();
-		InputStream in = null;
-		try {
-			in = getInputStream(user, pass, folderName, Long
-					.parseLong(message_uuid), attachmentName);
-
-			if (in != null) {
-				byte[] buffer = new byte[4096];
-				int bytesRead;
-				int bytesComplete = 0;
-				while ((bytesRead = in.read(buffer)) != -1) {
-					bytesComplete = bytesComplete + bytesRead;
-					out.write(buffer, 0, bytesRead); // write
+		HttpSession session = request.getSession();
+		if (session.getId().equals(sessionId)) {
+			response.setContentType("application/download");
+			response.setHeader("Content-disposition", "attachment; filename="
+					+ attachmentName + "");
+
+			OutputStream out = response.getOutputStream();
+			InputStream in = null;
+			try {
+				in = getInputStream((User) request.getSession().getAttribute(
+						"user"), folderName, Long.parseLong(message_uuid),
+						attachmentName);
+
+				if (in != null) {
+					byte[] buffer = new byte[4096];
+					int bytesRead;
+					int bytesComplete = 0;
+					while ((bytesRead = in.read(buffer)) != -1) {
+						bytesComplete = bytesComplete + bytesRead;
+						out.write(buffer, 0, bytesRead); // write
+					}
+					out.flush();
+					response.setContentLength(bytesComplete);
+				} else {
+					response.setContentLength(0);
+				}
+			} catch (Exception e) {
+				logger.error("Error while downloading attachment "
+						+ attachmentName + " of message " + message_uuid
+						+ " for sessionId " + sessionId, e);
+			} finally {
+				if (in != null) {
+					in.close();
+				}
+				if (out != null) {
+					out.close();
 				}
-				out.flush();
-				response.setContentLength(bytesComplete);
-			} else {
-				response.setContentLength(0);
-			}
-		} catch (Exception e) {
-			logger.error("Error while downloading attachment " + attachmentName
-					+ " of message " + message_uuid + " for user " + user, e);
-		} finally {
-			if (in != null) {
-				in.close();
-			}
-			if (out != null) {
-				out.close();
-			}
 
+			}
 		}
 
 	}
 
-	private InputStream getInputStream(String user, String pass,
-			String folderName, long messageUUID, String attachmentName)
-			throws MessagingException, IOException {
+	private InputStream getInputStream(User user, String folderName,
+			long messageUUID, String attachmentName) throws MessagingException,
+			IOException {
 
-		IMAPStore store = cache.get(user, pass);
+		IMAPStore store = cache.get(user);
 
 		IMAPFolder folder = (IMAPFolder) store.getFolder(folderName);
 		if (folder.isOpen() == false) {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org