Skip to content

Commit 238954f

Browse files
committed
fix: Removed JWT constants from CMS and added comments on how to generate them
1 parent 1e48f19 commit 238954f

File tree

8 files changed

+12
-50
lines changed

8 files changed

+12
-50
lines changed

cms/envs/common.py

-9
Original file line numberDiff line numberDiff line change
@@ -2530,15 +2530,6 @@
25302530
EXAMS_SERVICE_URL = 'http://localhost:18740/api/v1'
25312531
EXAMS_SERVICE_USERNAME = 'edx_exams_worker'
25322532

2533-
############## Settings for JWT token handling ##############
2534-
TOKEN_SIGNING = {
2535-
'JWT_ISSUER': 'http://127.0.0.1:8740',
2536-
'JWT_SIGNING_ALGORITHM': 'RS512',
2537-
'JWT_SUPPORTED_VERSION': '1.2.0',
2538-
'JWT_PRIVATE_SIGNING_JWK': None,
2539-
'JWT_PUBLIC_SIGNING_JWK_SET': None,
2540-
}
2541-
25422533
FINANCIAL_REPORTS = {
25432534
'STORAGE_TYPE': 'localfs',
25442535
'BUCKET': None,

cms/envs/test.py

-31
Original file line numberDiff line numberDiff line change
@@ -343,34 +343,3 @@
343343
}
344344
}
345345
}
346-
347-
############## Settings for JWT token handling ##############
348-
TOKEN_SIGNING = {
349-
'JWT_ISSUER': 'token-test-issuer',
350-
'JWT_SIGNING_ALGORITHM': 'RS512',
351-
'JWT_SUPPORTED_VERSION': '1.2.0',
352-
'JWT_PRIVATE_SIGNING_JWK': '''{
353-
"e": "AQAB",
354-
"d": "HIiV7KNjcdhVbpn3KT-I9n3JPf5YbGXsCIedmPqDH1d4QhBofuAqZ9zebQuxkRUpmqtYMv0Zi6ECSUqH387GYQF_XvFUFcjQRPycISd8TH0DAKaDpGr-AYNshnKiEtQpINhcP44I1AYNPCwyoxXA1fGTtmkKChsuWea7o8kytwU5xSejvh5-jiqu2SF4GEl0BEXIAPZsgbzoPIWNxgO4_RzNnWs6nJZeszcaDD0CyezVSuH9QcI6g5QFzAC_YuykSsaaFJhZ05DocBsLczShJ9Omf6PnK9xlm26I84xrEh_7x4fVmNBg3xWTLh8qOnHqGko93A1diLRCrKHOvnpvgQ",
355-
"n": "o5cn3ljSRi6FaDEKTn0PS-oL9EFyv1pI7dRgffQLD1qf5D6sprmYfWWokSsrWig8u2y0HChSygR6Jn5KXBqQn6FpM0dDJLnWQDRXHLl3Ey1iPYgDSmOIsIGrV9ZyNCQwk03wAgWbfdBTig3QSDYD-sTNOs3pc4UD_PqAvU2nz_1SS2ZiOwOn5F6gulE1L0iE3KEUEvOIagfHNVhz0oxa_VRZILkzV-zr6R_TW1m97h4H8jXl_VJyQGyhMGGypuDrQ9_vaY_RLEulLCyY0INglHWQ7pckxBtI5q55-Vio2wgewe2_qYcGsnBGaDNbySAsvYcWRrqDiFyzrJYivodqTQ",
356-
"q": "3T3DEtBUka7hLGdIsDlC96Uadx_q_E4Vb1cxx_4Ss_wGp1Loz3N3ZngGyInsKlmbBgLo1Ykd6T9TRvRNEWEtFSOcm2INIBoVoXk7W5RuPa8Cgq2tjQj9ziGQ08JMejrPlj3Q1wmALJr5VTfvSYBu0WkljhKNCy1KB6fCby0C9WE",
357-
"p": "vUqzWPZnDG4IXyo-k5F0bHV0BNL_pVhQoLW7eyFHnw74IOEfSbdsMspNcPSFIrtgPsn7981qv3lN_staZ6JflKfHayjB_lvltHyZxfl0dvruShZOx1N6ykEo7YrAskC_qxUyrIvqmJ64zPW3jkuOYrFs7Ykj3zFx3Zq1H5568G0",
358-
"kid": "token-test-sign", "kty": "RSA"
359-
}''',
360-
'JWT_PUBLIC_SIGNING_JWK_SET': '''{
361-
"keys": [
362-
{
363-
"kid":"token-test-wrong-key",
364-
"e": "AQAB",
365-
"kty": "RSA",
366-
"n": "o5cn3ljSRi6FaDEKTn0PS-oL9EFyv1pI7dffgRQLD1qf5D6sprmYfWVokSsrWig8u2y0HChSygR6Jn5KXBqQn6FpM0dDJLnWQDRXHLl3Ey1iPYgDSmOIsIGrV9ZyNCQwk03wAgWbfdBTig3QSDYD-sTNOs3pc4UD_PqAvU2nz_1SS2ZiOwOn5F6gulE1L0iE3KEUEvOIagfHNVhz0oxa_VRZILkzV-zr6R_TW1m97h4H8jXl_VJyQGyhMGGypuDrQ9_vaY_RLEulLCyY0INglHWQ7pckxBtI5q55-Vio2wgewe2_qYcGsnBGaDNbySAsvYcWRrqDiFyzrJYivodqTQ"
367-
},
368-
{
369-
"kid":"token-test-sign",
370-
"e": "AQAB",
371-
"kty": "RSA",
372-
"n": "o5cn3ljSRi6FaDEKTn0PS-oL9EFyv1pI7dRgffQLD1qf5D6sprmYfWWokSsrWig8u2y0HChSygR6Jn5KXBqQn6FpM0dDJLnWQDRXHLl3Ey1iPYgDSmOIsIGrV9ZyNCQwk03wAgWbfdBTig3QSDYD-sTNOs3pc4UD_PqAvU2nz_1SS2ZiOwOn5F6gulE1L0iE3KEUEvOIagfHNVhz0oxa_VRZILkzV-zr6R_TW1m97h4H8jXl_VJyQGyhMGGypuDrQ9_vaY_RLEulLCyY0INglHWQ7pckxBtI5q55-Vio2wgewe2_qYcGsnBGaDNbySAsvYcWRrqDiFyzrJYivodqTQ"
373-
}
374-
]
375-
}''',
376-
}

lms/envs/common.py

+6
Original file line numberDiff line numberDiff line change
@@ -4320,6 +4320,12 @@ def _make_locale_paths(settings): # pylint: disable=missing-function-docstring
43204320
'JWT_PUBLIC_SIGNING_JWK_SET': None,
43214321
}
43224322

4323+
# NOTE: In order to create both JWT_PRIVATE_SIGNING_JWK and JWT_PUBLIC_SIGNING_JWK_SET,
4324+
# start devstack on an lms shell and then run the command:
4325+
# > python manage.py lms generate_jwt_signing_key
4326+
# This will output asymmetric JWTs to use here. Read more on this on:
4327+
# https://github.com/openedx/edx-platform/blob/master/openedx/core/djangoapps/oauth_dispatch/docs/decisions/0008-use-asymmetric-jwts.rst
4328+
43234329
COURSE_CATALOG_URL_ROOT = 'http://localhost:8008'
43244330
COURSE_CATALOG_API_URL = f'{COURSE_CATALOG_URL_ROOT}/api/v1'
43254331

openedx/core/lib/tests/test_jwt.py

+3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from jwkest import BadSignature, Expired, Invalid, MissingKey, jwk
88
from jwkest.jws import JWS
99

10+
from openedx.core.djangolib.testing.utils import skip_unless_lms
1011
from openedx.core.lib.jwt import _encode_and_sign, create_jwt, unpack_jwt
1112

1213

@@ -24,6 +25,7 @@
2425
}
2526

2627

28+
@skip_unless_lms
2729
class TestSign(unittest.TestCase):
2830
"""
2931
Tests for JWT creation and signing.
@@ -66,6 +68,7 @@ def _verify_jwt(jwt_token):
6668
return decoded
6769

6870

71+
@skip_unless_lms
6972
class TestUnpack(unittest.TestCase):
7073
"""
7174
Tests for JWT unpacking.

requirements/edx/base.txt

+3-2
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@ boto3==1.36.3
8080
# ora2
8181
botocore==1.36.3
8282
# via
83+
# -r requirements/edx/kernel.in
84+
# boto3
85+
# s3transfer
8386
bridgekeeper==0.9
8487
# via -r requirements/edx/kernel.in
8588
cachecontrol==0.14.2
@@ -534,8 +537,6 @@ edx-toggles==5.2.0
534537
# edxval
535538
# event-tracking
536539
# ora2
537-
edx-token-utils==0.2.1
538-
# via -r requirements/edx/kernel.in
539540
edx-when==2.5.1
540541
# via
541542
# -r requirements/edx/kernel.in

requirements/edx/development.txt

-4
Original file line numberDiff line numberDiff line change
@@ -844,10 +844,6 @@ edx-toggles==5.2.0
844844
# edxval
845845
# event-tracking
846846
# ora2
847-
edx-token-utils==0.2.1
848-
# via
849-
# -r requirements/edx/doc.txt
850-
# -r requirements/edx/testing.txt
851847
edx-when==2.5.1
852848
# via
853849
# -r requirements/edx/doc.txt

requirements/edx/doc.txt

-2
Original file line numberDiff line numberDiff line change
@@ -628,8 +628,6 @@ edx-toggles==5.2.0
628628
# edxval
629629
# event-tracking
630630
# ora2
631-
edx-token-utils==0.2.1
632-
# via -r requirements/edx/base.txt
633631
edx-when==2.5.1
634632
# via
635633
# -r requirements/edx/base.txt

requirements/edx/testing.txt

-2
Original file line numberDiff line numberDiff line change
@@ -651,8 +651,6 @@ edx-toggles==5.2.0
651651
# edxval
652652
# event-tracking
653653
# ora2
654-
edx-token-utils==0.2.1
655-
# via -r requirements/edx/base.txt
656654
edx-when==2.5.1
657655
# via
658656
# -r requirements/edx/base.txt

0 commit comments

Comments
 (0)