Sha256: c6a6dc87a1db762cd1fd529de2a44caaaafa3a38ceb584ab6225b1de6f2b00ba

Contents?: true

Size: 1.56 KB

Versions: 2

Compression:

Stored size: 1.56 KB

Contents

module AdsenseCrawlerForPrivate
  class AdsenseCrawlerLoginController < ApplicationController

    # Making sure that verify_authenticity_token is not on, adsense does not have it
    skip_before_action :verify_authenticity_token, :only => :login, :raise => false

    def login
      unless AdsenseCrawlerForPrivate.crawler_password.blank?

        crawler_name = params[:name]
        crawler_password = params[:password]

        if (AdsenseCrawlerForPrivate.ip_check(request) and
            crawler_name == AdsenseCrawlerForPrivate.crawler_name and
            crawler_password == AdsenseCrawlerForPrivate.crawler_password)

          cookies.signed[AdsenseCrawlerForPrivate.cookie_name] = AdsenseCrawlerForPrivate.cookie_hash(crawler_name, crawler_password, request.remote_ip)

          AdsenseCrawlerForPrivate.logger.warn "login successfully. Crawler_name: #{crawler_name}, crawler_ip: #{request.remote_ip}"

          render :plain => 'crawler login ok', :status => 200
        else
          cookies.delete(AdsenseCrawlerForPrivate.cookie_name, :domain => AdsenseCrawlerForPrivate.cookie_domain)

          AdsenseCrawlerForPrivate.logger.warn "login unsuccessful. Crawler_name: #{crawler_name}, crawler_password: #{crawler_password}, crawler_ip: #{request.remote_ip}"

          render :plain => 'crawler login unsuccessful', :status => 401 # 401 unauthorized
        end

      else
        str = "AdsenseCrawlerForPrivate not configured, no password given."
        AdsenseCrawlerForPrivate.logger.warn(str)
        render :plain => str, :status => 401
      end

    end
  
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
adsense_crawler_for_private-1.2.1 app/controllers/adsense_crawler_for_private/adsense_crawler_login_controller.rb
adsense_crawler_for_private-1.2.0 app/controllers/adsense_crawler_for_private/adsense_crawler_login_controller.rb