mirror of
https://github.com/j93es/oauth-backend.git
synced 2026-06-05 02:01:28 +09:00
nonceCheck 수정
This commit is contained in:
parent
2bb887939a
commit
78a377414d
2 changed files with 18 additions and 3 deletions
|
|
@ -4,6 +4,7 @@ from pkce_check import PKCEDowngradeChecker
|
||||||
from ScopeDetection import ScopeDetection
|
from ScopeDetection import ScopeDetection
|
||||||
from csrf_check import CsrfChecker
|
from csrf_check import CsrfChecker
|
||||||
from nonce_check import NonceChecker
|
from nonce_check import NonceChecker
|
||||||
|
from redirect_uri_check import RedirectBypassChecker
|
||||||
from access_token import AccessTokenScanner
|
from access_token import AccessTokenScanner
|
||||||
|
|
||||||
class PKCEAddon:
|
class PKCEAddon:
|
||||||
|
|
@ -62,7 +63,6 @@ class NonceAddon:
|
||||||
print(f"[ERROR] NonceAddon failed: {e}")
|
print(f"[ERROR] NonceAddon failed: {e}")
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class AccessTokenAddon:
|
class AccessTokenAddon:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.checker = AccessTokenScanner()
|
self.checker = AccessTokenScanner()
|
||||||
|
|
@ -74,5 +74,15 @@ class AccessTokenAddon:
|
||||||
print(f"[ERROR] AccessToken Addon failed: {e}")
|
print(f"[ERROR] AccessToken Addon failed: {e}")
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
class RedirectBypassAddon:
|
||||||
|
def __init__(self):
|
||||||
|
self.checker = RedirectBypassChecker()
|
||||||
|
|
||||||
addons = [PKCEAddon(), ScopeAddon(), CsrfAddon(), NonceAddon(), AccessTokenAddon()]
|
# request 대신 response 로 바꿔 보세요:
|
||||||
|
async def response(self, flow: http.HTTPFlow):
|
||||||
|
try:
|
||||||
|
await self.checker.test(flow)
|
||||||
|
except Exception as e:
|
||||||
|
print(f"[ERROR] RedirectBypass Addon failed: {e}")
|
||||||
|
|
||||||
|
addons = [PKCEAddon(), ScopeAddon(), CsrfAddon(), NonceAddon(), AccessTokenAddon(), RedirectBypassAddon()]
|
||||||
|
|
|
||||||
|
|
@ -73,6 +73,7 @@ class NonceChecker:
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
|
|
||||||
def check_nonce_in_id_token(self, flow) -> bool:
|
def check_nonce_in_id_token(self, flow) -> bool:
|
||||||
if not flow.response or not self.is_oidc_flow(flow):
|
if not flow.response or not self.is_oidc_flow(flow):
|
||||||
|
|
@ -90,6 +91,10 @@ class NonceChecker:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
id_token = self.extract_id_token(flow)
|
id_token = self.extract_id_token(flow)
|
||||||
|
=======
|
||||||
|
# TODO id_token을 파싱하는 부분이 누락되어있습니다.
|
||||||
|
def check_nonce_in_id_token(self, flow, id_token: str) -> bool:
|
||||||
|
>>>>>>> 99fc280517f09bb93d586c26f01239f32c04c56c
|
||||||
decoded = self.decode_id_token(id_token)
|
decoded = self.decode_id_token(id_token)
|
||||||
nonce = decoded.get("nonce")
|
nonce = decoded.get("nonce")
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue