File tree 1 file changed +20
-1
lines changed 1 file changed +20
-1
lines changed Original file line number Diff line number Diff line change 1
1
from __future__ import absolute_import
2
2
3
+ import base64
4
+ import datetime
3
5
import os
4
6
import time
5
7
14
16
import dash_core_components as dcc
15
17
from dash .dependencies import Output , Input
16
18
17
- from .oauth import OAuthBase
19
+ from .oauth import OAuthBase , need_request_context
18
20
19
21
from . import api_requests
20
22
@@ -150,6 +152,23 @@ def wrap(*args, **kwargs):
150
152
def check_view_access (self , oauth_token ):
151
153
return check_view_access (oauth_token , self ._dash_app ['fid' ])
152
154
155
+ @need_request_context
156
+ def get_kerberos_ticket_cache (self ):
157
+ token = flask .request .cookies .get ('plotly_oauth_token' )
158
+
159
+ res = api_requests .get (
160
+ '/v2/users/current?kerberos=1' ,
161
+ headers = {'Authorization' : 'Bearer {}' .format (token )},
162
+ )
163
+ res_json = res .json ()
164
+
165
+ expiry_str = res_json ['kerberos_ticket_expiry' ]
166
+ expiry = datetime .datetime .strptime (expiry_str , '%Y-%m-%dT%H:%M:%SZ' )
167
+ if expiry < datetime .datetime .utcnow ():
168
+ raise Exception ('Kerberos ticket has expired.' )
169
+
170
+ return base64 .b64decode (res_json ['kerberos_ticket_cache' ])
171
+
153
172
def logout (self ):
154
173
token = flask .request .cookies .get ('plotly_oauth_token' )
155
174
data = {
You can’t perform that action at this time.
0 commit comments