2009-08-04 2 views
0

swfupload의 최신 버전 인 2.2.0과 레일즈 2.3.3을 사용하고 있습니다. CGI :: Session.initialize를 폼 url에 삽입 된 키 - 값 쌍에서 세션을 추출하는 코드 덩어리로 대체해야한다는 취지의 여러 진술을 보았을 때 필자는 코드 세그먼트를 제 환경에 통합했습니다. RB :레일스가 swfupload에서 보낸 데이터에서 세션로드를 거부합니다.

require 'cgi' 
class CGI::Session 
    alias original_initialize initialize 
    def initialize(request, option = {}) 
     session_key = option['session_key'] || '_session_id' 
     query_string = if (qs = request.env_table["QUERY_STRING"]) and qs != "" 
      qs 
     elsif (ru = request.env_table["REQUEST_URI"][0..-1]).include?("?") 
      ru[(ru.index("?") + 1)..-1] 
     end 
     if query_string and query_string.include?(session_key) 
      option['session_id'] = query_string.scan(/#{session_key}=(.*?)(&.*?)*$/).flatten.first 
     end 
     original_initialize(request, option) 
    end 
end 

나는 파일이 업로드되는 세션 정보를 올바르게 양식 매개 변수로 포장되는 참조 할 수 있지만, 위의 코드는 결코 데이터베이스에서 세션 정보를 가져 발사되지 않습니다.

params-packed 세션 ID 및 인증 토큰에서 얻는 비밀 소스는 무엇입니까 (매개 변수에서 가져 오지 못합니다)? 나는이 작업을 얻고 얼마나 많은 시간 나는 그것에 투자에 얼마나 가까운 고려

답변

1
+0

, 나는 가능하면 원래의 질문에 대한 답변을 얻을하는 것을 선호합니다. 랙 미들웨어 페이지를 살펴 보았고 코드에서 실제 예제를 제공했지만 참조 용으로 검토 할 수있는 실행중인 예제는 없습니다. 다시 한번, 나는 현재의 문제를 해결하기 전에 전체 내용을 폐기하고 새로운 것을 시도 할 것입니다. 그래도 고마워. 나는 그것을 다음 옵션으로 유지할 것이다. – Sniggerfardimungus

+0

지금까지 랙을 사용하기 때문에 사용중인 레일 버전에서는 전체 CGI 쿠키가 작동하지 않는다는 것을 알고 있습니다. –