세션을 유지하고 있었다면 아무런 문제가 없었을 것입니다. 하지만 지금 로그인을 시도하면 “Log In” 버튼을 클릭할 때 URL이 /auth/failure?message=csrf_detected로 변경되고, Authorization timed out, or you have switched browsers. Please try again.라는 오류 메시지가 표시됩니다.
부수적으로 질문이 하나 있는데, 이전 버전으로 롤백할 수 있는 방법이 있을까요? 여기저기 찾아봤는데, 합의된 방법은 플러그인(또는 문제가 된 특정 플러그인)을 비활성화하는 거라고 합니다. 하지만 이 플러그인은 비활성화할 수가 없는데, 사용자가 플랫폼에 로그인하는 방식이 바로 이 플러그인이라서요
간단한 업데이트: 업그레이드 시점(업그레이드 전)의 머신 스냅샷을 사용하여 백업 버전을 사용해 보았습니다. "로그인"을 클릭하면 메인 페이지가 두 번 다시 로드될 뿐입니다. 당시 사용했던 정확한 커밋 SHA로 재구축을 시도해 보았지만, DB Rake 오류가 발생하여 실패했습니다.
LDAP 관련 다른 보고서를 찾아보았지만, 관련 내용이 없는 것 같습니다. 외부 소스에 의해 발생할 수 있을까요?
문제가 해결되었습니다. 근본 원인을 찾았는데, Discourse와 관련된 문제가 아니었습니다(죄송합니다!). 문제는 인증서가 업데이트되어 HAP를 통해 제공되고 있었는데, 이전에는 HAP를 사용하지 않고 Discourse가 직접 제공하던 상황에서 이 세부 사항을 놓쳤기 때문에 CORS 오류가 발생했던 것입니다.
배운 교훈:
Discourse를 롤백하는 것은 불가능합니다. 전체 머신에 대한 백업을 갖추는 것이 좋습니다(다행히 백업이 되어 있었습니다).
여기서 읽은 지침에 따라 특정 SHA로 재구축하는 것이 왜 그렇게 어려웠는지 아직까지도 알 수 없습니다. 제 경우엔 성공하지 못했습니다.
인증서는 항상 HAP에서 제공하는 것이 좋지만, 이 사실을 잊지 마세요. (다른 분들을 위한 참고 사항으로, Discourse에는 자체 NGINX가 있기 때문에 'set-header X-Forwarded-Proto https' 플래그를 추가해야 합니다. 바로 이 부분에서 실패가 발생했습니다.)
동일한 문제를 보고한 사람이 한 명도 없었다는 사실(이 플러그인이 공식 플러그인이 아니라는 점을 고려하면 코너 케이스이긴 하지만)이 그 방향으로의 추측을 뒷받침했습니다(커뮤니티가 의도한 대로 작동했네요 :P)
업데이트로 인해 트리거된 재구축 과정에서 실패가 발생했기 때문에, 문제가 늦게까지 드러나지 않았습니다(인증서 변경을 기억조차 못 할 정도로요).