@@ -58,6 +58,26 @@ def acquire_auth_token_ticket(self):
5858 auth_token_ticket ))
5959 return auth_token_ticket
6060
61+ def create_session (self , ticket , payload = None , expires = None ):
62+ '''
63+ Create a session record from a service ticket.
64+ '''
65+ assert isinstance (self .session_storage_adapter , CASSessionAdapter )
66+ logging .debug ('[CAS] Creating session for ticket {}' .format (ticket ))
67+ self .session_storage_adapter .create (
68+ ticket ,
69+ payload = payload ,
70+ expires = expires ,
71+ )
72+
73+ def delete_session (self , ticket ):
74+ '''
75+ Delete a session record associated with a service ticket.
76+ '''
77+ assert isinstance (self .session_storage_adapter , CASSessionAdapter )
78+ logging .debug ('[CAS] Deleting session for ticket {}' .format (ticket ))
79+ self .session_storage_adapter .delete (ticket )
80+
6181 def get_auth_token_login_url (
6282 self ,
6383 auth_token_ticket ,
@@ -94,6 +114,28 @@ def get_auth_token_login_url(
94114 logging .debug ('[CAS] AuthToken Login URL: {}' .format (url ))
95115 return url
96116
117+ def get_destroy_other_sessions_url (self , service_url = None ):
118+ '''
119+ Get the URL for a remote CAS `destroy-other-sessions` endpoint.
120+
121+ ::
122+
123+ >>> from cas_client import CASClient
124+ >>> client = CASClient('https://logmein.com')
125+ >>> service_url = 'http://myservice.net'
126+ >>> client.get_destroy_other_sessions_url(service_url)
127+ 'https://logmein.com/cas/destroy-other-sessions?service=http://myservice.net'
128+
129+ '''
130+ template = '{server_url}{auth_prefix}/destroy-other-sessions?service={service_url}'
131+ url = template .format (
132+ server_url = self .server_url ,
133+ auth_prefix = self .auth_prefix ,
134+ service_url = service_url or self .service_url ,
135+ )
136+ logging .debug ('[CAS] Login URL: {}' .format (url ))
137+ return url
138+
97139 def get_login_url (self , service_url = None ):
98140 '''
99141 Get the URL for a remote CAS `login` endpoint.
@@ -209,26 +251,6 @@ def parse_logout_request(self, message_text):
209251 ))
210252 return result
211253
212- def create_session (self , ticket , payload = None , expires = None ):
213- '''
214- Create a session record from a service ticket.
215- '''
216- assert isinstance (self .session_storage_adapter , CASSessionAdapter )
217- logging .debug ('[CAS] Creating session for ticket {}' .format (ticket ))
218- self .session_storage_adapter .create (
219- ticket ,
220- payload = payload ,
221- expires = expires ,
222- )
223-
224- def delete_session (self , ticket ):
225- '''
226- Delete a session record associated with a service ticket.
227- '''
228- assert isinstance (self .session_storage_adapter , CASSessionAdapter )
229- logging .debug ('[CAS] Deleting session for ticket {}' .format (ticket ))
230- self .session_storage_adapter .delete (ticket )
231-
232254 def session_exists (self , ticket ):
233255 '''
234256 Test if a session records exists for a service ticket.
0 commit comments