Type Server
object
--+
|
Server
I handle requests for an OpenID server.
Some types of requests (those which are not checkid
requests) may be handed to my handleRequest
method, and I will take care
of it and return a response.
For your convenience, I also provide an interface to Decoder.decode
and SigningEncoder.encode
through my methods decodeRequest
and encodeResponse
.
All my state is encapsulated in an OpenIDStore
, which means I'm not generally
pickleable but I am easy to reconstruct.
Example:
oserver = Server(FileOpenIDStore(data_path), "http://example.com/op")
request = oserver.decodeRequest(query)
if request.mode in ['checkid_immediate', 'checkid_setup']:
if self.isAuthorized(request.identity, request.trust_root):
response = request.answer(True)
elif request.immediate:
response = request.answer(False)
else:
self.showDecidePage(request)
return
else:
response = oserver.handleRequest(request)
webresponse = oserver.encode(response)
Method Summary |
|
__init__ (self,
store,
op_endpoint)
A new Server . |
OpenIDRequest
|
decodeRequest (self,
query)
Transform query parameters into an OpenIDRequest . |
WebResponse
|
encodeResponse (self,
response)
Encode a response to a WebResponse , signing it first if
appropriate. |
OpenIDResponse
|
handleRequest (self,
request)
Handle a request. |
OpenIDResponse
|
openid_associate (self,
request)
Handle and respond to associate requests. |
OpenIDResponse
|
openid_check_authentication (self,
request)
Handle and respond to check_authentication requests. |
Inherited from object :
__delattr__ ,
__getattribute__ ,
__hash__ ,
__new__ ,
__reduce__ ,
__reduce_ex__ ,
__repr__ ,
__setattr__ ,
__str__
|
decodeRequest(self,
query)
Transform query parameters into an OpenIDRequest .
If the query does not seem to be an OpenID request at all, I return
None .
-
- Parameters:
query -
The query parameters as a dictionary with each key mapping to
one value.
(type=dict)
- Returns:
-
OpenIDRequest
- Raises:
ProtocolError -
When the query does not seem to be a valid OpenID request.
See Also: Decoder.decode
|
encodeResponse(self,
response)
Encode a response to a WebResponse , signing it first if
appropriate.
-
- Returns:
-
WebResponse
- Raises:
EncodingError -
When I can't figure out how to encode this message.
AlreadySigned -
When this response is already signed.
See Also: SigningEncoder.encode
|
handleRequest(self,
request)
Handle a request.
Give me a request, I will give you a response. Unless it's a type of
request I cannot handle myself, in which case I will raise
NotImplementedError . In that case, you can handle it
yourself, or add a method to me for handling that request type.
-
- Returns:
-
OpenIDResponse
- Raises:
NotImplementedError -
When I do not have a handler defined for that type of
request.
|
openid_associate(self,
request)
Handle and respond to associate requests.
-
- Returns:
-
OpenIDResponse
|
openid_check_authentication(self,
request)
Handle and respond to check_authentication
requests.
-
- Returns:
-
OpenIDResponse
|
Instance Variable Details |
decoder
I'm using this to decode things.
-
- Type:
-
Decoder
|
encoder
I'm using this to encode things.
-
- Type:
-
Encoder
|
op_endpoint
My URL.
-
- Type:
-
str
|
signatory
I'm using this for associate requests and to sign things.
-
- Type:
-
Signatory
|