1

rails-ckeditorを使用すると、[サーバーの参照] ボタンと [アップロード] ボタンを使用して画像をアップロードしようとすると、常に 401 例外が発生します。現在、単純な基本認証を使用してサイトを保護しています

class ApplicationController < ActionController::Base
  protect_from_forgery

  before_filter :authenticate

  def logged_in?
    # cookies[:auth].present?
  end

  def authenticate
    # unless logged_in?
      authenticate_or_request_with_http_basic do |login, password|
        if(login == "user1" && password == "password")
          cookies.permanent.signed[:auth] = login
        end
      end
    # end
  end

  def current_church
    @current_church ||= Church.first
  end

end

基本認証を無効にすると、すべて正常に動作します。これに対する救済策はありますか?

ありがとう -wg

4

1 に答える 1

0

Cookie を送信するために SWFUpload (flash) を使用する場合に問題があります。

このリンクにより、正しい方向に進むことができました: http://ruby-on-rails-development.co.uk/2011/05/23/securing-ckeditor-file-management

解決策は、その記事の指示に従って、次の追加を行うことです。

  1. flash_session_cookie_middleware.rb ファイルに追加

    env['HTTP_COOKIE'] = ['auth', params['auth']].join('=').freeze

  2. base_helper.rb ファイル (/app/helpers/ckeditor の下) に以下を追加します。

    options['auth'] = Rack::Utils.escape(cookies[:auth])

この gem の最新のソースは、セッション ベースのトークンと認証トークンを既に処理しています。この単純なハックは、認証チケットを管理するために Cookie ベースのアプローチを使用する場合にのみ必要です。

于 2011-06-21T20:11:15.703 に答える