verify_return_to_args (OpenID::Consumer::IdResHandler)

    # File lib/openid/consumer/idres.rb, line 153
          def verify_return_to_args(msg_return_to)
            return_to_parsed_query = {}
            if !msg_return_to.query.nil?
              CGI.parse(msg_return_to.query).each_pair do |k, vs|
                return_to_parsed_query[k] = vs[0]
              end
            end
            query = @message.to_post_args
            return_to_parsed_query.each_pair do |rt_key, rt_val|
              msg_val = query[rt_key]
              if msg_val.nil?
                raise ProtocolError, "Message missing return_to argument '#{rt_key}'"
              elsif msg_val != rt_val
                raise ProtocolError, ("Parameter '#{rt_key}' value "\
                                      "#{msg_val.inspect} does not match "\
                                      "return_to's value #{rt_val.inspect}")
              end
            end
            @message.get_args(BARE_NS).each_pair do |bare_key, bare_val|
              rt_val = return_to_parsed_query[bare_key]
              if not return_to_parsed_query.has_key? bare_key
                # This may be caused by your web framework throwing extra
                # entries in to your parameters hash that were not GET or
                # POST parameters.  For example, Rails has been known to
                # add "controller" and "action" keys; another server adds
                # at least a "format" key.
                raise ProtocolError, ("Unexpected parameter (not on return_to): "\
                                      "'#{bare_key}'=#{rt_val.inspect})")
              end
              if rt_val != bare_val
                raise ProtocolError, ("Parameter '#{bare_key}' value "\
                                      "#{bare_val.inspect} does not match "\
                                      "return_to's value #{rt_val.inspect}")
              end
            end
          end