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