|
2 | 2 | import json |
3 | 3 | import os |
4 | 4 |
|
5 | | -import pytest |
6 | 5 | from cryptojwt import JWT |
7 | 6 | from cryptojwt.key_jar import build_keyjar |
8 | 7 | from oidcmsg.oidc import AccessTokenRequest |
9 | 8 | from oidcmsg.oidc import AuthorizationRequest |
10 | 9 | from oidcmsg.oidc import RefreshAccessTokenRequest |
11 | 10 | from oidcmsg.oidc import TokenErrorResponse |
12 | 11 | from oidcmsg.time_util import utc_time_sans_frac |
| 12 | +import pytest |
13 | 13 |
|
14 | 14 | from oidcop import JWT_BEARER |
15 | 15 | from oidcop.authn_event import create_authn_event |
@@ -813,6 +813,25 @@ def test_old_default_token(self): |
813 | 813 | _info = self.session_manager.token_handler.info(_old_type_value) |
814 | 814 | assert _info["token_class"] == "authorization_code" |
815 | 815 |
|
| 816 | + def test_old_default_token_sid_unencrypted(self): |
| 817 | + session_id = self._create_session(AUTH_REQ) |
| 818 | + grant = self.session_manager[session_id] |
| 819 | + code = self._mint_code(grant, AUTH_REQ["client_id"]) |
| 820 | + |
| 821 | + # pack and unpack |
| 822 | + _handler = self.session_manager.token_handler.handler["authorization_code"] |
| 823 | + _res = dict(zip(["_id", "token_class", "sid", "exp"], _handler.split_token(code.value))) |
| 824 | + |
| 825 | + _clear_txt_sid = self.session_manager.session_key( |
| 826 | + *self.session_manager.decrypt_session_id(_res["sid"])) |
| 827 | + |
| 828 | + _old_type_token = base64.b64encode( |
| 829 | + _handler.crypt.encrypt(lv_pack(_res["_id"], "A", _clear_txt_sid, _res["exp"]).encode()) |
| 830 | + ).decode("utf-8") |
| 831 | + |
| 832 | + _session_info = self.session_manager.get_session_info_by_token(_old_type_token) |
| 833 | + assert _session_info["user_id"] == "diana" |
| 834 | + |
816 | 835 | def test_old_jwt_token(self): |
817 | 836 | session_id = self._create_session(AUTH_REQ) |
818 | 837 | grant = self.session_manager[session_id] |
|
0 commit comments