Handlers don't work from remote services
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 30/100
Hướng nghiên cứu
Bắt đầu trong workbench/views.py tại hàm handler và theo dõi cách các handler của XBlock nhận các yêu cầu POST cũng như cách áp dụng miễn trừ CSRF. So sánh các handler được các trình duyệt đã xác thực truy cập với những handler được các dịch vụ settings, outcomes và memberships sử dụng. Được coi là hoàn tất khi sự phân biệt mà issue yêu cầu được hỗ trợ mà không miễn trừ cho mọi handler, và hành vi được bao phủ bởi các bài kiểm thử liên quan nếu có.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
From a developer:
[quote]
All the handlers I am creating that are accessed by remote tools using POST requests (settings service, outcomes service and memberships service) are all blocked by django's CSRF protection. Adding the @csrf_exempt decorator to the handlers in the XBlock has no effect. I have only been able to get it working by adding @csrf_exempt to the handler function in workbench/views.py
diff --git a/workbench/views.py b/workbench/views.py
index b8f97e6..72037a5 100644
--- a/workbench/views.py
+++ b/workbench/views.py@@ -75,7 +76,9 @@ def show_scenario(request, scenario_id, view_name='student_view'):
})
+from django.views.decorators.csrf import csrf_exempt
+@csrf_exempt
def handler(request, usage_id, handler_slug):
student_id = get_student_id(request)
log.info("Start handler %s/%s for student %s", usage_id, handler_slug, student_id)
usage = Usage.find_usage(usage_id)
[end quote]
Clearly, we don't want to exempt all handlers from CSRF protection, so we need a way to indicate which handlers are from the authenticated browser, and which are not.
- Ngôn ngữ chính
- Python
- Star
- 470
- Fork
- 231
- Merge trung bình
- 2 ngày 22 giờ
- Pull request đã merge (30 ngày)
- 7
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của openedx/XBlock
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
-
performance
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 45/100
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
-
[DEPR]: Support for XBlock Runtimes with raw string scope IDsCó thể đã có người làm @salman2013 đã nhận 214 ngày trước. Đang mởdepr
openedx/XBlock#784 · 10 bình luận · 3 reaction · 1 người được giao ·
Tất cả issue của openedx/XBlock
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
lugassawan/swe-workbench#799 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: CPU without Triton: slot-mapping fallback has a stale signature after #57169, V1 inference fails on the first forward stepCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
vllm-project/vllm#61131 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Non-string form field names raise AttributeError when files are attachedCó thể đã có người làm @nightcityblade đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
kubernetes-client/python#2735 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
desktop help wanted test
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày