summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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