Server IP : 103.119.228.120 / Your IP : 3.129.39.85 Web Server : Apache System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : nobody ( 99) PHP Version : 5.6.40 Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/lib/mysqlsh/lib/python3.9/site-packages/oci/auth/ |
Upload File : |
# coding: utf-8 # Copyright (c) 2016, 2024, Oracle and/or its affiliates. All rights reserved. # This software is dual-licensed to you under the Universal Permissive License (UPL) 1.0 as shown at https://oss.oracle.com/licenses/upl or Apache License 2.0 as shown at http://www.apache.org/licenses/LICENSE-2.0. You may choose either license. import oci._vendor.jwt as jwt import time class SecurityTokenContainer(object): DEFAULT_EXPIRY_JITTER_SECONDS = 60 def __init__(self, session_key_supplier, security_token): self.security_token = security_token self.session_key_supplier = session_key_supplier self.jwt = jwt.decode(jwt=security_token, verify=False) def get_jwt(self): return self.jwt def valid(self): return not self._expired_with_jitter(0) def valid_with_jitter(self, jitter=DEFAULT_EXPIRY_JITTER_SECONDS): return not self._expired_with_jitter(jitter) def valid_with_half_expiration_time(self): valid_duration = self.jwt['exp'] - self.jwt['iat'] return not self._expired_with_jitter(valid_duration / 2) def _expired_with_jitter(self, jitter): """ Checks expiry with some jitter to account for clock skews on the client and also, for non-skewed clients, the scenario where the token was valid when we checked but became invalid before we sent a request (this should be rare). Regarding clock skew, in this context we are only worried about the scenario where the client's time is behind the server time as then tokens look like they will be valid for longer than they are and calls could fail with 401s. If the client's time is ahead of the server time that's not great but it would just lead to tokens being refreshed more often, this would not cause hard failures but could lead to higher perceived latency on the client :param int jitter: The amount of jitter, in seconds, to apply to the expiry time in the token """ time_now = int(time.time()) return time_now > (self.jwt['exp'] - jitter) # The exp key which PyJWT returns is in epoch seconds