【问题标题】:How to fix Ruby Rack SessionId error Error: undefined class/module Rack::Session::SessionId when decoding the rack.session cookie如何修复 Ruby Rack SessionId 错误错误:解码 rack.session cookie 时未定义的类/模块 Rack::Session::SessionId
【发布时间】:2021-09-02 05:28:12
【问题描述】:

在编写 ruby​​ 脚本以解码机架会话 cookie 并使用 ruby​​ 函数 Marshal load 加载对象时,我收到以下错误:

错误:未定义的类/模块 Rack::Session::SessionId

这是我的红宝石脚本:

require 'pp'
require 'base64'
require 'uri'
require 'rack' # solves the error: Error: undefined class/module Rack::

c = gets
cookie, signature = c.split("--")
decoded = Base64.decode64(URI.decode(cookie))
begin
    object = Marshal.load(decoded)
    pp object
rescue ArgumentError => e
    puts "Error: " + e.to_s
end

我该如何解决这个问题?我尝试在 stackoverflow 上寻找解决方案,但无法弄清楚。

【问题讨论】:

    标签: ruby rack


    【解决方案1】:

    感谢Louis Nyffenegger (@snyff) 帮助我解决这个问题 https://twitter.com/snyff/status/1407054131697758211?s=20

    这个错误可以通过创建method stub来解决

    require 'pp'
    require 'base64'
    require 'uri'
    require 'rack'
    
    class Rack::Session::SessionId
    end
    
    c = gets
    cookie, signature = c.split("--")
    decoded = Base64.decode64(URI.decode(cookie))
    begin
        object = Marshal.load(decoded)
        pp object
    rescue ArgumentError => e
        puts "Error: " + e.to_s
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多