class OmniAuth::Strategies::Seb

Constants

AUTH_SERVICE

Public Instance Methods

callback_phase() click to toggle source
Calls superclass method
# File lib/omniauth/strategies/seb.rb, line 39
def callback_phase
  begin
    pub_crt = OpenSSL::X509::Certificate.new(options.public_crt).public_key
  rescue => e
    return fail!(:public_crt_load_err, e)
  end

  if request.params['IB_SND_ID'] != 'SEBUB'
    return fail!(:invalid_response_snd_id_err)
  end

  if request.params['IB_SERVICE'] != '0001'
    return fail!(:invalid_response_service_err)
  end

  message = OmniAuth::Strategies::Seb::Response.new(request.params)
  message.validate!(pub_crt)

  super
rescue ValidationError => e
  fail!(:invalid_response_crc, e)
end
request_phase() click to toggle source
# File lib/omniauth/strategies/seb.rb, line 62
def request_phase
  fail!(:invalid_snd_id) if options.snd_id.nil?

  message = OmniAuth::Strategies::Seb::Message.new(
    'IB_SND_ID': options.snd_id,
    'IB_SERVICE': AUTH_SERVICE,
    'IB_LANG': 'LAT'
  )

  # Build redirect form
  form = OmniAuth::Form.new(title: I18n.t('omniauth.seb.please_wait'), url: options.site)

  message.each_pair do |k,v|
    form.html "<input type=\"hidden\" name=\"#{k}\" value=\"#{v}\" />"
  end

  form.button I18n.t('omniauth.seb.click_here_if_not_redirected')
  form.instance_variable_set('@html',
    form.to_html.gsub('</form>', '</form><script type="text/javascript">document.forms[0].submit();</script>'))
  form.to_response
end