summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoao Eduardo Luis <joao.luis@inktank.com>2013-07-28 19:32:49 +0100
committerJoao Eduardo Luis <joao.luis@inktank.com>2013-08-02 22:49:32 +0100
commit1305ab44514685700c08ee759bc0ca49e70e95f2 (patch)
treee4ec13d649503da19423a06432e9b856a000c062
parent7269a0c7738ca6d4cd3a22b29c116c2b1e75b59c (diff)
downloadceph-1305ab44514685700c08ee759bc0ca49e70e95f2.tar.gz
mon: services: no longer needed to enforce caps on a per-service basis
We now perform all perm checks for commands on Monitor::handle_command(). Services no longer need to check them. Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
-rw-r--r--src/mon/AuthMonitor.cc6
-rw-r--r--src/mon/LogMonitor.cc4
-rw-r--r--src/mon/MDSMonitor.cc8
-rw-r--r--src/mon/Monitor.cc1
-rw-r--r--src/mon/MonmapMonitor.cc8
-rw-r--r--src/mon/OSDMonitor.cc8
-rw-r--r--src/mon/PGMonitor.cc8
7 files changed, 12 insertions, 31 deletions
diff --git a/src/mon/AuthMonitor.cc b/src/mon/AuthMonitor.cc
index 629451b5eac..63bcbb1ef03 100644
--- a/src/mon/AuthMonitor.cc
+++ b/src/mon/AuthMonitor.cc
@@ -546,8 +546,7 @@ bool AuthMonitor::preprocess_command(MMonCommand *m)
}
MonSession *session = m->get_session();
- if (!session ||
- (!mon->_allowed_command(session, cmdmap))) {
+ if (!session) {
mon->reply_command(m, -EACCES, "access denied", rdata, get_last_committed());
return true;
}
@@ -696,8 +695,7 @@ bool AuthMonitor::prepare_command(MMonCommand *m)
boost::scoped_ptr<Formatter> f(new_formatter(format));
MonSession *session = m->get_session();
- if (!session ||
- (!mon->_allowed_command(session, cmdmap))) {
+ if (!session) {
mon->reply_command(m, -EACCES, "access denied", rdata, get_last_committed());
return true;
}
diff --git a/src/mon/LogMonitor.cc b/src/mon/LogMonitor.cc
index cab49060082..47f56bebee4 100644
--- a/src/mon/LogMonitor.cc
+++ b/src/mon/LogMonitor.cc
@@ -362,9 +362,7 @@ bool LogMonitor::prepare_command(MMonCommand *m)
cmd_getval(g_ceph_context, cmdmap, "prefix", prefix);
MonSession *session = m->get_session();
- if (!session ||
- (!session->is_capable("log", MON_CAP_W) &&
- !mon->_allowed_command(session, cmdmap))) {
+ if (!session) {
mon->reply_command(m, -EACCES, "access denied", get_last_committed());
return true;
}
diff --git a/src/mon/MDSMonitor.cc b/src/mon/MDSMonitor.cc
index f0fb4ae8332..5129cf1c76f 100644
--- a/src/mon/MDSMonitor.cc
+++ b/src/mon/MDSMonitor.cc
@@ -554,9 +554,7 @@ bool MDSMonitor::preprocess_command(MMonCommand *m)
boost::scoped_ptr<Formatter> f(new_formatter(format));
MonSession *session = m->get_session();
- if (!session ||
- (!session->is_capable("mds", MON_CAP_R) &&
- !mon->_allowed_command(session, cmdmap))) {
+ if (!session) {
mon->reply_command(m, -EACCES, "access denied", rdata, get_last_committed());
return true;
}
@@ -768,9 +766,7 @@ bool MDSMonitor::prepare_command(MMonCommand *m)
cmd_getval(g_ceph_context, cmdmap, "prefix", prefix);
MonSession *session = m->get_session();
- if (!session ||
- (!session->is_capable("mds", MON_CAP_W) &&
- !mon->_allowed_command(session, cmdmap))) {
+ if (!session) {
mon->reply_command(m, -EACCES, "access denied", rdata, get_last_committed());
return true;
}
diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc
index ecd5173b6d2..4d8d87317d4 100644
--- a/src/mon/Monitor.cc
+++ b/src/mon/Monitor.cc
@@ -1993,6 +1993,7 @@ void Monitor::handle_command(MMonCommand *m)
if (!_allowed_command(session, module, prefix, cmdmap)) {
dout(1) << __func__ << " access denied" << dendl;
reply_command(m, -EACCES, "access denied", 0);
+ return;
}
if (module == "mds") {
diff --git a/src/mon/MonmapMonitor.cc b/src/mon/MonmapMonitor.cc
index 5ec1583b82f..799f19df154 100644
--- a/src/mon/MonmapMonitor.cc
+++ b/src/mon/MonmapMonitor.cc
@@ -164,9 +164,7 @@ bool MonmapMonitor::preprocess_command(MMonCommand *m)
cmd_getval(g_ceph_context, cmdmap, "prefix", prefix);
MonSession *session = m->get_session();
- if (!session ||
- (!session->is_capable("mon", MON_CAP_R) &&
- !mon->_allowed_command(session, cmdmap))) {
+ if (!session) {
mon->reply_command(m, -EACCES, "access denied", get_last_committed());
return true;
}
@@ -276,9 +274,7 @@ bool MonmapMonitor::prepare_command(MMonCommand *m)
cmd_getval(g_ceph_context, cmdmap, "prefix", prefix);
MonSession *session = m->get_session();
- if (!session ||
- (!session->is_capable("mon", MON_CAP_R) &&
- !mon->_allowed_command(session, cmdmap))) {
+ if (!session) {
mon->reply_command(m, -EACCES, "access denied", get_last_committed());
return true;
}
diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc
index c6db052a591..e58b3c2082e 100644
--- a/src/mon/OSDMonitor.cc
+++ b/src/mon/OSDMonitor.cc
@@ -1949,9 +1949,7 @@ bool OSDMonitor::preprocess_command(MMonCommand *m)
}
MonSession *session = m->get_session();
- if (!session ||
- (!session->is_capable("osd", MON_CAP_R) &&
- !mon->_allowed_command(session, cmdmap))) {
+ if (!session) {
mon->reply_command(m, -EACCES, "access denied", rdata, get_last_committed());
return true;
}
@@ -2595,9 +2593,7 @@ bool OSDMonitor::prepare_command(MMonCommand *m)
boost::scoped_ptr<Formatter> f(new_formatter(format));
MonSession *session = m->get_session();
- if (!session ||
- (!session->is_capable("osd", MON_CAP_W) &&
- !mon->_allowed_command(session, cmdmap))) {
+ if (!session) {
mon->reply_command(m, -EACCES, "access denied", get_last_committed());
return true;
}
diff --git a/src/mon/PGMonitor.cc b/src/mon/PGMonitor.cc
index 648a8fe2384..eca9eef82cd 100644
--- a/src/mon/PGMonitor.cc
+++ b/src/mon/PGMonitor.cc
@@ -1317,9 +1317,7 @@ bool PGMonitor::preprocess_command(MMonCommand *m)
cmd_getval(g_ceph_context, cmdmap, "prefix", prefix);
MonSession *session = m->get_session();
- if (!session ||
- (!session->is_capable("pg", MON_CAP_R) &&
- !mon->_allowed_command(session, cmdmap))) {
+ if (!session) {
mon->reply_command(m, -EACCES, "access denied", rdata, get_last_committed());
return true;
}
@@ -1561,9 +1559,7 @@ bool PGMonitor::prepare_command(MMonCommand *m)
cmd_getval(g_ceph_context, cmdmap, "prefix", prefix);
MonSession *session = m->get_session();
- if (!session ||
- (!session->is_capable("pg", MON_CAP_W) &&
- !mon->_allowed_command(session, cmdmap))) {
+ if (!session) {
mon->reply_command(m, -EACCES, "access denied", get_last_committed());
return true;
}