You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by mi...@apache.org on 2016/02/10 13:11:03 UTC
fabric commit: updated refs/heads/master to 31be532
Repository: couchdb-fabric
Updated Branches:
refs/heads/master d67049cca -> 31be53240
Return forbidden error if encountered on any shard
This commit fixes an issue which caused HTTP 500 errors to be
returned when an authorized user attempted to access a database
that they did not have permission to access, when cassim is
disabled.
Instead of returning an internal server error once all shards
have failed to open we add a receive clause so that we throw
a forbidden error if one is encountered on any shard. This is the
same approach we already take for unauthorized errors.
Closes COUCHDB-2948
This closes #38
Project: http://git-wip-us.apache.org/repos/asf/couchdb-fabric/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-fabric/commit/31be5324
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-fabric/tree/31be5324
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-fabric/diff/31be5324
Branch: refs/heads/master
Commit: 31be5324023771fa80bfe8a28a31f6592cb28af0
Parents: d67049c
Author: Mike Wallace <mi...@apache.org>
Authored: Tue Feb 9 14:31:55 2016 +0000
Committer: Mike Wallace <mi...@apache.org>
Committed: Wed Feb 10 11:59:23 2016 +0000
----------------------------------------------------------------------
src/fabric_util.erl | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-fabric/blob/31be5324/src/fabric_util.erl
----------------------------------------------------------------------
diff --git a/src/fabric_util.erl b/src/fabric_util.erl
index ef40484..522a1d2 100644
--- a/src/fabric_util.erl
+++ b/src/fabric_util.erl
@@ -187,6 +187,8 @@ get_shard([#shard{node = Node, name = Name} | Rest], Opts, Timeout, Factor) ->
{ok, Db};
{Ref, {'rexi_EXIT', {{unauthorized, _} = Error, _}}} ->
throw(Error);
+ {Ref, {'rexi_EXIT', {{forbidden, _} = Error, _}}} ->
+ throw(Error);
{Ref, _Else} ->
get_shard(Rest, Opts, Timeout, Factor)
after Timeout ->