Skip to content
This repository was archived by the owner on Jun 23, 2023. It is now read-only.

Commit e5c75b1

Browse files
committed
Added a parent class exception OidcOPError.
Moved a token error from exception.py to token/exception.py. Used the umbrella error TokenException.
1 parent e444e2b commit e5c75b1

4 files changed

Lines changed: 55 additions & 44 deletions

File tree

src/oidcop/exception.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
class OidcEndpointError(Exception):
1+
class OidcOPError(Exception):
2+
pass
3+
4+
5+
class OidcEndpointError(OidcOPError):
26
pass
37

48

@@ -96,7 +100,3 @@ class CapabilitiesMisMatch(OidcEndpointError):
96100

97101
class MultipleCodeUsage(OidcEndpointError):
98102
pass
99-
100-
101-
class InvalidToken(Exception):
102-
pass

src/oidcop/token/exception.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,33 @@
1-
class ExpiredToken(Exception):
1+
from oidcop.exception import OidcOPError
2+
3+
4+
class TokenException(OidcOPError):
5+
pass
6+
7+
8+
class ExpiredToken(TokenException):
29
pass
310

411

5-
class WrongTokenType(Exception):
12+
class WrongTokenType(TokenException):
613
pass
714

815

9-
class WrongTokenClass(Exception):
16+
class WrongTokenClass(TokenException):
1017
pass
1118

12-
class AccessCodeUsed(Exception):
19+
20+
class AccessCodeUsed(TokenException):
21+
pass
22+
23+
24+
class UnknownToken(TokenException):
1325
pass
1426

1527

16-
class UnknownToken(Exception):
28+
class NotAllowed(TokenException):
1729
pass
1830

1931

20-
class NotAllowed(Exception):
32+
class InvalidToken(TokenException):
2133
pass

src/oidcop/token/handler.py

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,10 @@
99
from oidcmsg.impexp import ImpExp
1010
from oidcmsg.item import DLDict
1111

12-
from oidcop.exception import InvalidToken
1312
from oidcop.token import DefaultToken
1413
from oidcop.token import Token
1514
from oidcop.token import UnknownToken
16-
from oidcop.token import WrongTokenType
15+
from oidcop.token.exception import TokenException
1716
from oidcop.util import importer
1817

1918
__author__ = "Roland Hedberg"
@@ -25,11 +24,11 @@ class TokenHandler(ImpExp):
2524
parameter = {"handler": DLDict, "handler_order": [""]}
2625

2726
def __init__(
28-
self,
29-
access_token: Optional[Token] = None,
30-
authorization_code: Optional[Token] = None,
31-
refresh_token: Optional[Token] = None,
32-
id_token: Optional[Token] = None,
27+
self,
28+
access_token: Optional[Token] = None,
29+
authorization_code: Optional[Token] = None,
30+
refresh_token: Optional[Token] = None,
31+
id_token: Optional[Token] = None,
3332
):
3433
ImpExp.__init__(self)
3534
self.handler = {"authorization_code": authorization_code,
@@ -73,7 +72,7 @@ def get_handler(self, token, order=None):
7372
for typ in order:
7473
try:
7574
res = self.handler[typ].info(token)
76-
except (KeyError, WrongTokenType, InvalidToken, UnknownToken, Invalid, AttributeError):
75+
except (KeyError, TokenException, Invalid, AttributeError):
7776
pass
7877
else:
7978
return self.handler[typ], res
@@ -143,13 +142,13 @@ def default_token(spec):
143142

144143

145144
def factory(
146-
server_get,
147-
code: Optional[dict] = None,
148-
token: Optional[dict] = None,
149-
refresh: Optional[dict] = None,
150-
id_token: Optional[dict] = None,
151-
jwks_file: Optional[str] = "",
152-
**kwargs
145+
server_get,
146+
code: Optional[dict] = None,
147+
token: Optional[dict] = None,
148+
refresh: Optional[dict] = None,
149+
id_token: Optional[dict] = None,
150+
jwks_file: Optional[str] = "",
151+
**kwargs
153152
) -> TokenHandler:
154153
"""
155154
Create a token handler

src/oidcop/token/id_token.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
from oidcop.exception import ToOld
1212
from oidcop.session.claims import claims_match
1313
from oidcop.token import is_expired
14+
from oidcop.token.exception import InvalidToken
1415
from . import Token
1516
from . import UnknownToken
16-
from ..exception import InvalidToken
1717
from ..util import get_logout_id
1818

1919
logger = logging.getLogger(__name__)
@@ -58,7 +58,7 @@ def include_session_id(endpoint_context, client_id, where):
5858

5959

6060
def get_sign_and_encrypt_algorithms(
61-
endpoint_context, client_info, payload_type, sign=False, encrypt=False
61+
endpoint_context, client_info, payload_type, sign=False, encrypt=False
6262
):
6363
args = {"sign": sign, "encrypt": encrypt}
6464
if sign:
@@ -117,11 +117,11 @@ class IDToken(Token):
117117
}
118118

119119
def __init__(
120-
self,
121-
token_class: Optional[str] = "id_token",
122-
lifetime: Optional[int] = 300,
123-
server_get: Callable = None,
124-
**kwargs
120+
self,
121+
token_class: Optional[str] = "id_token",
122+
lifetime: Optional[int] = 300,
123+
server_get: Callable = None,
124+
**kwargs
125125
):
126126
Token.__init__(self, token_class, **kwargs)
127127
self.lifetime = lifetime
@@ -131,7 +131,7 @@ def __init__(
131131
self.provider_info = construct_endpoint_info(self.default_capabilities, **kwargs)
132132

133133
def payload(
134-
self, session_id, alg="RS256", code=None, access_token=None, extra_claims=None,
134+
self, session_id, alg="RS256", code=None, access_token=None, extra_claims=None,
135135
):
136136
"""
137137
@@ -200,15 +200,15 @@ def payload(
200200
return _args
201201

202202
def sign_encrypt(
203-
self,
204-
session_id,
205-
client_id,
206-
code=None,
207-
access_token=None,
208-
sign=True,
209-
encrypt=False,
210-
lifetime=None,
211-
extra_claims=None,
203+
self,
204+
session_id,
205+
client_id,
206+
code=None,
207+
access_token=None,
208+
sign=True,
209+
encrypt=False,
210+
lifetime=None,
211+
extra_claims=None,
212212
) -> str:
213213
"""
214214
Signed and or encrypt a IDToken
@@ -253,7 +253,7 @@ def __call__(self, session_id: Optional[str] = "", ttype: Optional[str] = "", **
253253

254254
# Should I add session ID. This is about Single Logout.
255255
if include_session_id(_context, client_id, "back") or include_session_id(
256-
_context, client_id, "front"
256+
_context, client_id, "front"
257257
):
258258

259259
xargs = {"sid": get_logout_id(_context, user_id=user_id, client_id=client_id)}

0 commit comments

Comments
 (0)