summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTheron Luhn <theron@luhn.com>2019-02-17 19:02:33 -0800
committerTheron Luhn <theron@luhn.com>2019-02-19 08:53:36 -0800
commit839bfb427093b94a5e75b22a11a5df20ad94cb1e (patch)
tree4b9280217264ed60ff2d6a426e41cf0ea528ad40 /src
parent4c3c826ca9a6069f47fee439576966cf625df528 (diff)
downloadpyramid-839bfb427093b94a5e75b22a11a5df20ad94cb1e.tar.gz
pyramid-839bfb427093b94a5e75b22a11a5df20ad94cb1e.tar.bz2
pyramid-839bfb427093b94a5e75b22a11a5df20ad94cb1e.zip
Set legacy policy when using authn/authz policies.
Diffstat (limited to 'src')
-rw-r--r--src/pyramid/config/security.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/pyramid/config/security.py b/src/pyramid/config/security.py
index b023917aa..42554db97 100644
--- a/src/pyramid/config/security.py
+++ b/src/pyramid/config/security.py
@@ -14,6 +14,7 @@ from pyramid.interfaces import (
from pyramid.csrf import LegacySessionCSRFStoragePolicy
from pyramid.exceptions import ConfigurationError
from pyramid.util import as_sorted_tuple
+from pyramid.security import LegacySecurityPolicy
from pyramid.config.actions import action_method
@@ -77,6 +78,7 @@ class SecurityConfiguratorMixin(object):
'also configuring an authorization policy '
'(use the set_authorization_policy method)'
)
+ self._set_legacy_policy()
intr = self.introspectable(
'authentication policy',
@@ -97,6 +99,15 @@ class SecurityConfiguratorMixin(object):
policy = self.maybe_dotted(policy)
self.registry.registerUtility(policy, IAuthenticationPolicy)
+ def _set_legacy_policy(self):
+ if self.registry.queryUtility(ISecurityPolicy) is not None:
+ raise ConfigurationError(
+ 'Cannot configure an authentication and authorization policy '
+ 'with a configured security policy.'
+ )
+ policy = LegacySecurityPolicy()
+ self.registry.registerUtility(policy, ISecurityPolicy)
+
@action_method
def set_authorization_policy(self, policy):
""" Override the :app:`Pyramid` :term:`authorization policy` in the