Class Server
source code
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)
|
|
OpenIDResponse
|
|
OpenIDResponse
|
openid_check_authentication(self,
request)
Handle and respond to check_authentication requests. |
source code
|
|
OpenIDResponse
|
openid_associate(self,
request)
Handle and respond to associate requests. |
source code
|
|
OpenIDRequest
|
|
WebResponse
|
|
Inherited from object :
__delattr__ ,
__getattribute__ ,
__hash__ ,
__new__ ,
__reduce__ ,
__reduce_ex__ ,
__repr__ ,
__setattr__ ,
__str__
|
Decoder
|
decoder
I'm using this to decode things.
|
Encoder
|
encoder
I'm using this to encode things.
|
openid.association.SessionNegotiator
|
negotiator
I use this to determine which kinds of associations I can make and
how.
|
str
|
op_endpoint
My URL.
|
Signatory
|
signatory
I'm using this for associate requests and to sign things.
|
Inherited from object :
__class__
|
__init__(self,
store,
op_endpoint=None)
(Constructor)
| source code
|
A new Server.
- Parameters:
store (openid.store.interface.OpenIDStore) - The back-end where my associations are stored.
op_endpoint (str) - My URL, the fully qualified address of this server's endpoint,
i.e. http://example.com/server
- Overrides:
object.__init__
Change Log:
op_endpoint is new in library version 2.0. It currently
defaults to None for compatibility with earlier versions
of the library, but you must provide it if you want to respond to any
version 2 OpenID requests.
|
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.
|
Transform query parameters into an OpenIDRequest.
If the query does not seem to be an OpenID request at all, I return
None .
- Parameters:
query (dict) - The query parameters as a dictionary with each key mapping to one
value.
- Returns: OpenIDRequest
- Raises:
ProtocolError - When the query does not seem to be a valid OpenID request.
|