36
36
37
37
from repoze .who .interfaces import IChallenger , IIdentifier , IAuthenticator
38
38
from repoze .who .interfaces import IMetadataProvider
39
- from repoze .who .plugins .form import FormPluginBase
40
39
41
40
from saml2 import ecp , BINDING_HTTP_REDIRECT
42
41
from saml2 import BINDING_HTTP_POST
@@ -66,7 +65,6 @@ def construct_came_from(environ):
66
65
return came_from
67
66
68
67
69
- # FormPluginBase defines the methods remember and forget
70
68
def cgi_field_storage_to_dict (field_storage ):
71
69
"""Get a plain dictionary, rather than the '.value' system used by the
72
70
cgi module."""
@@ -118,14 +116,12 @@ def __call__(self, environ, start_response):
118
116
return [self .content ]
119
117
120
118
121
- class SAML2Plugin (FormPluginBase ):
119
+ class SAML2Plugin (object ):
122
120
123
121
implements (IChallenger , IIdentifier , IAuthenticator , IMetadataProvider )
124
122
125
123
def __init__ (self , rememberer_name , config , saml_client , wayf , cache ,
126
124
sid_store = None , discovery = "" , idp_query_param = "" ):
127
- FormPluginBase .__init__ (self )
128
-
129
125
self .rememberer_name = rememberer_name
130
126
self .wayf = wayf
131
127
self .saml_client = saml_client
@@ -145,6 +141,24 @@ def __init__(self, rememberer_name, config, saml_client, wayf, cache,
145
141
self .outstanding_queries = {}
146
142
self .iam = platform .node ()
147
143
144
+
145
+ def _get_rememberer (self , environ ):
146
+ rememberer = environ ['repoze.who.plugins' ][self .rememberer_name ]
147
+ return rememberer
148
+
149
+
150
+ #### IIdentifier ####
151
+ def remember (self , environ , identity ):
152
+ rememberer = self ._get_rememberer (environ )
153
+ return rememberer .remember (environ , identity )
154
+
155
+
156
+ #### IIdentifier ####
157
+ def forget (self , environ , identity ):
158
+ rememberer = self ._get_rememberer (environ )
159
+ return rememberer .forget (environ , identity )
160
+
161
+
148
162
def _get_post (self , environ ):
149
163
"""
150
164
Get the posted information
0 commit comments