You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ad...@apache.org on 2016/10/24 06:34:37 UTC
[4/6] james-project git commit: JAMES-1838 Deny shared mailbox
accesses should display a fancy message
JAMES-1838 Deny shared mailbox accesses should display a fancy message
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/0e1c37b5
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/0e1c37b5
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/0e1c37b5
Branch: refs/heads/master
Commit: 0e1c37b5ccdc278e534694572e90946c5a6ca1bd
Parents: 1bafdc1
Author: Benoit Tellier <bt...@linagora.com>
Authored: Wed Oct 19 18:00:50 2016 +0200
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Fri Oct 21 17:01:12 2016 +0200
----------------------------------------------------------------------
.../imap/api/display/HumanReadableText.java | 2 ++
.../processor/AbstractMailboxProcessor.java | 21 ++++++++++++--------
.../base/AbstractChainedProcessor.java | 1 +
3 files changed, 16 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/0e1c37b5/protocols/imap/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java b/protocols/imap/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java
index 3f181ba..8ae4cd0 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java
@@ -158,6 +158,8 @@ public class HumanReadableText {
public static final HumanReadableText QRESYNC_CLOSED = new HumanReadableText("org.apache.james.imap.QRESYNC_CLOSED", "");
public static final HumanReadableText QRESYNC_VANISHED_WITHOUT_CHANGEDSINCE = new HumanReadableText("org.apache.james.imap.QRESYNC_VANISHED_WITHOUT_CHANGEDSINCE", "VANISHED used without CHANGEDSINCE");
+ public static final HumanReadableText DENIED_SHARED_MAILBOX = new HumanReadableText("org.apache.james.imap.DENIED_SHARED_MAILBOX", "You can not access a mailbox that does not belong to you");
+
public static final String UNSUFFICIENT_RIGHTS_DEFAULT_VALUE = "You need the {0} right to perform command {1} on mailbox {2}.";
public static final String UNSUFFICIENT_RIGHTS_KEY = "org.apache.james.imap.UNSUFFICIENT_RIGHTS";
http://git-wip-us.apache.org/repos/asf/james-project/blob/0e1c37b5/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
index 2663b56..3c3d3ad 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
@@ -40,6 +40,7 @@ import org.apache.james.imap.api.message.response.StatusResponseFactory;
import org.apache.james.imap.api.process.ImapProcessor;
import org.apache.james.imap.api.process.ImapSession;
import org.apache.james.imap.api.process.SelectedMailbox;
+import org.apache.james.imap.main.DeniedAccessOnSharedMailboxException;
import org.apache.james.imap.message.response.ExistsResponse;
import org.apache.james.imap.message.response.ExpungeResponse;
import org.apache.james.imap.message.response.FetchResponse;
@@ -56,7 +57,6 @@ import org.apache.james.mailbox.MessageManager.MetaData.FetchGroup;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MessageRangeException;
import org.apache.james.mailbox.model.FetchGroupImpl;
-import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.MessageRange;
import org.apache.james.mailbox.model.MessageRange.Type;
@@ -77,6 +77,7 @@ abstract public class AbstractMailboxProcessor<M extends ImapRequest> extends Ab
this.factory = factory;
}
+ @Override
protected final void doProcess(M acceptableMessage, Responder responder, ImapSession session) {
process(acceptableMessage, responder, session);
}
@@ -88,17 +89,21 @@ abstract public class AbstractMailboxProcessor<M extends ImapRequest> extends Ab
}
final void doProcess(M message, ImapCommand command, String tag, Responder responder, ImapSession session) {
- if (!command.validForState(session.getState())) {
- ImapResponseMessage response = factory.taggedNo(tag, command, HumanReadableText.INVALID_COMMAND);
- responder.respond(response);
+ try {
+ if (!command.validForState(session.getState())) {
+ ImapResponseMessage response = factory.taggedNo(tag, command, HumanReadableText.INVALID_COMMAND);
+ responder.respond(response);
- } else {
- getMailboxManager().startProcessingRequest(ImapSessionUtils.getMailboxSession(session));
+ } else {
+ getMailboxManager().startProcessingRequest(ImapSessionUtils.getMailboxSession(session));
- doProcess(message, session, tag, command, responder);
+ doProcess(message, session, tag, command, responder);
- getMailboxManager().endProcessingRequest(ImapSessionUtils.getMailboxSession(session));
+ getMailboxManager().endProcessingRequest(ImapSessionUtils.getMailboxSession(session));
+ }
+ } catch (DeniedAccessOnSharedMailboxException e) {
+ no(command, tag, responder, HumanReadableText.DENIED_SHARED_MAILBOX);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/0e1c37b5/protocols/imap/src/main/java/org/apache/james/imap/processor/base/AbstractChainedProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/AbstractChainedProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/AbstractChainedProcessor.java
index fa9116d..d403887 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/AbstractChainedProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/AbstractChainedProcessor.java
@@ -45,6 +45,7 @@ abstract public class AbstractChainedProcessor<M extends ImapMessage> implements
* org.apache.james.imap.api.process.ImapProcessor.Responder,
* org.apache.james.imap.api.process.ImapSession)
*/
+ @Override
@SuppressWarnings("unchecked")
public void process(ImapMessage message, Responder responder, ImapSession session) {
final boolean isAcceptable = isAcceptable(message);
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org