@@ -58,6 +58,26 @@ def acquire_auth_token_ticket(self):
58
58
auth_token_ticket ))
59
59
return auth_token_ticket
60
60
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
+
61
81
def get_auth_token_login_url (
62
82
self ,
63
83
auth_token_ticket ,
@@ -94,6 +114,28 @@ def get_auth_token_login_url(
94
114
logging .debug ('[CAS] AuthToken Login URL: {}' .format (url ))
95
115
return url
96
116
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
+
97
139
def get_login_url (self , service_url = None ):
98
140
'''
99
141
Get the URL for a remote CAS `login` endpoint.
@@ -209,26 +251,6 @@ def parse_logout_request(self, message_text):
209
251
))
210
252
return result
211
253
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
-
232
254
def session_exists (self , ticket ):
233
255
'''
234
256
Test if a session records exists for a service ticket.
0 commit comments