1
+ import logging
2
+
1
3
from jwt .exceptions import InvalidIssuerError , InvalidTokenError
2
4
3
5
from atlassian_jwt_auth .exceptions import (
11
13
def _process_asap_token (request , backend , settings , verifier = None ):
12
14
""" Verifies an ASAP token, validates the claims, and returns an error
13
15
response"""
16
+ logger = logging .getLogger ('asap' )
14
17
token = backend .get_asap_token (request )
15
18
error_response = None
16
19
if token is None and not settings .ASAP_REQUIRED and (
@@ -30,6 +33,7 @@ def _process_asap_token(request, backend, settings, verifier=None):
30
33
_verify_issuers (asap_claims , settings .ASAP_VALID_ISSUERS )
31
34
backend .set_asap_claims_for_request (request , asap_claims )
32
35
except NoTokenProvidedError :
36
+ logger .info ('No token provided' )
33
37
error_response = backend .get_401_response (
34
38
'Unauthorized' , request = request
35
39
)
@@ -42,26 +46,33 @@ def _process_asap_token(request, backend, settings, verifier=None):
42
46
# will return 403 for a missing file to avoid leaking
43
47
# information.
44
48
raise
45
-
49
+ logger . warning ( 'Could not retrieve the matching public key' )
46
50
error_response = backend .get_401_response (
47
51
'Unauthorized: Key not found' , request = request
48
52
)
49
53
except InvalidIssuerError :
54
+ logger .warning ('Invalid token - issuer' )
50
55
error_response = backend .get_403_response (
51
56
'Forbidden: Invalid token issuer' , request = request
52
57
)
53
58
except InvalidTokenError :
59
+ logger .warning ('Invalid token' )
54
60
error_response = backend .get_401_response (
55
61
'Unauthorized: Invalid token' , request = request
56
62
)
57
63
except JtiUniquenessException :
64
+ logger .warning ('Invalid token - duplicate jti' )
58
65
error_response = backend .get_401_response (
59
66
'Unauthorized: Invalid token - duplicate jti' , request = request
60
67
)
61
68
except SubjectDoesNotMatchIssuerException :
69
+ logger .warning ('Invalid token - subject and issuer do not match' )
62
70
error_response = backend .get_401_response (
63
71
'Unauthorized: Subject and Issuer do not match' , request = request
64
72
)
73
+ except ValueError :
74
+ logger .exception ('An error occured while checking an asap token' )
75
+ raise
65
76
66
77
if error_response is not None and settings .ASAP_REQUIRED :
67
78
return error_response
0 commit comments