DISPATCH-990: integrate the pattern match with vhost lookups

Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/f17631cb
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/f17631cb
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/f17631cb

Branch: refs/heads/master
Commit: f17631cbe7a695fb4492a4437289d82a1a89a1c0
Parents: f90c2a8
Author: Chuck Rolke <[email protected]>
Authored: Fri May 11 11:10:49 2018 -0400
Committer: Chuck Rolke <[email protected]>
Committed: Fri May 11 11:10:49 2018 -0400

----------------------------------------------------------------------
 python/qpid_dispatch_internal/policy/policy_local.py | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/f17631cb/python/qpid_dispatch_internal/policy/policy_local.py
----------------------------------------------------------------------
diff --git a/python/qpid_dispatch_internal/policy/policy_local.py 
b/python/qpid_dispatch_internal/policy/policy_local.py
index cd62072..ce47e21 100644
--- a/python/qpid_dispatch_internal/policy/policy_local.py
+++ b/python/qpid_dispatch_internal/policy/policy_local.py
@@ -607,15 +607,24 @@ class PolicyLocal(object):
         """
         try:
             # choose rule set based on incoming vhost or default vhost
+            # or potential vhost found by pattern matching
             vhost = vhost_in
-            if vhost_in not in self.rulesetdb:
+            if self.use_hostname_patterns:
+                agent = self._manager.get_agent()
+                vhost = 
agent.qd.qd_dispatch_policy_host_pattern_lookup(agent.dispatch, vhost)
+            if vhost not in self.rulesetdb:
                 if self.default_vhost_enabled():
                     vhost = self._default_vhost
                 else:
                     self._manager.log_info(
                         "DENY AMQP Open for user '%s', rhost '%s', vhost '%s': 
"
-                        "No policy defined for vhost" % (user, rhost, vhost))
+                        "No policy defined for vhost" % (user, rhost, 
vhost_in))
                     return ""
+            if vhost != vhost_in:
+                self._manager.log_debug(
+                    "AMQP Open for user '%s', rhost '%s', vhost '%s': "
+                    "proceeds using vhost '%s' ruleset" % (user, rhost, 
vhost_in, vhost))
+
             ruleset = self.rulesetdb[vhost]
 
             # look up the stats


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to