sq_auth 0.0.21 → 0.0.22

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,19 @@
1
+ require 'sinatra/base'
2
+ require 'sq_auth'
3
+ require 'pry'
4
+
5
+ class MyApp < Sinatra::Base
6
+ set :sessions, true
7
+
8
+ SqAuth.connect(host: "auth.server.com") do |d|
9
+ d.project_name = "Auth"
10
+ d.gateway_ip = "192.168.0.1"
11
+ d.forced_host = "my-desktop"
12
+ end
13
+
14
+ get [:admin], '/123' do
15
+ 'Hello world!'
16
+ end
17
+ end
18
+
19
+ MyApp.run!
@@ -4,19 +4,23 @@ module SqAuth
4
4
  DEFAULT_DRAW_PROC = Proc.new {|uri, callback, role, project, session| SqAuthUtils::default_draw_template(uri, callback, role, project, session)}
5
5
  DEFAULT_DATA_PROC = Proc.new { "Forbidden" }
6
6
  DEFAULT_OPTIONS = {project: "Project", https: true}
7
- attr_accessor :login_path, :callback, :project_name, :gateway_ip
7
+ attr_accessor :login_path, :callback, :project_name, :gateway_ip, :forced_host, :forced_port
8
8
  def initialize options={}
9
9
  @options = options
10
10
  @data_proc = DEFAULT_DATA_PROC
11
11
  @draw_proc = DEFAULT_DRAW_PROC
12
12
  @login_path = DEFAULT_ACCESS_PATH
13
13
  @gateway_ip = nil
14
+ @forced_host = nil
15
+ @forced_port = nil
14
16
  end
15
17
 
16
18
  def connect options = {}
17
19
  options = DEFAULT_OPTIONS.merge(options)
18
20
  @project_name = options[:project]
19
21
  @gateway_ip = options[:gateway_ip]
22
+ @forced_port = options[:forced_host]
23
+ @forced_host = options[:forced_port]
20
24
  yield self if block_given?
21
25
  SqAuthIntegration.alter_environment options
22
26
  @session_provider = SqAuthClient.new options
@@ -99,5 +103,12 @@ module SqAuth
99
103
  uri.path = "#@login_path"
100
104
  uri.to_s
101
105
  end
106
+
107
+ def set_callback(actual_callback)
108
+ callback_uri = URI.parse(actual_callback)
109
+ callback_uri.port = @forced_port.to_i if @forced_port
110
+ callback_uri.host = @forced_host if @forced_host
111
+ @callback = callback_uri.to_s
112
+ end
102
113
  end
103
114
  end
@@ -11,9 +11,14 @@ module SqAuth
11
11
  # config.middleware.use Rack::Session::Cookie, :expire_after => 2592000
12
12
  config.middleware.use SqAuth::SqAuthIntegration::SqAuthRack::Middleware
13
13
  end
14
- else
15
- use Rack::Session::Cookie, :expire_after => 2592000
16
- use SqAuth::SqAuthIntegration::SqAuthRack::Middleware
14
+ elsif defined?(Sinatra)
15
+ if options[:klass].respond_to?(:use)
16
+ sinatra_class = options[:klass]
17
+ else
18
+ sinatra_class = Sinatra::Base
19
+ end
20
+ sinatra_class.use Rack::Session::Cookie, :expire_after => 2592000
21
+ sinatra_class.use SqAuth::SqAuthIntegration::SqAuthRack::Middleware
17
22
  end
18
23
  end
19
24
 
@@ -21,7 +26,7 @@ module SqAuth
21
26
  attr_accessor :app, :env
22
27
  def call(env)
23
28
  req = Rack::Request.new(env)
24
- SqAuth.access.callback = callback_uri(env)
29
+ SqAuth.access.set_callback(callback_uri(env))
25
30
  SqAuth.access.current_user_ip = env["HTTP_X_FORWARDED_FOR"] || env["REMOTE_ADDR"]
26
31
  SqAuth.access.save_session_for_current_user (env["rack.session"]||{})[:sqauthsession]
27
32
  form_hash = req.params||{}
@@ -56,7 +61,6 @@ module SqAuth
56
61
  end
57
62
  host ||= env["SERVER_NAME"]
58
63
  port ||= env["SERVER_PORT"]
59
- port = 80
60
64
  path = env["REQUEST_PATH"].to_s
61
65
  if path.empty?
62
66
  path = URI::parse(env["PATH_INFO"]).path rescue ""
@@ -82,7 +86,7 @@ module SqAuth
82
86
  [status, headers, response]
83
87
  end
84
88
 
85
- def initialize(app)
89
+ def initialize(app, options = {})
86
90
  @app = app
87
91
  end
88
92
  end
@@ -13,7 +13,7 @@ module SqAuth
13
13
  const_set("HOST", except)
14
14
  alias :old_accepts? :accepts?
15
15
  def accepts?(env)
16
- form_hash = env["rack.request.form_hash"]||{}
16
+ form_hash = Rack::Request.new(env).params
17
17
  if referrer(env) == HOST && env["REQUEST_METHOD"] == "POST" && form_hash.keys.include?("sqauthsession")
18
18
  true
19
19
  else
@@ -1,3 +1,3 @@
1
1
  module SqAuth
2
- VERSION = "0.0.21"
2
+ VERSION = "0.0.22"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sq_auth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.21
4
+ version: 0.0.22
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-17 00:00:00.000000000Z
12
+ date: 2012-05-02 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70197901917880 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70197901917880
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: rspec
27
- requirement: &70197901916460 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *70197901916460
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: sinatra
38
- requirement: &70197901914660 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,7 +53,12 @@ dependencies:
43
53
  version: '0'
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *70197901914660
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  description: SQ sevices authentication gem
48
63
  email:
49
64
  - leonidkrn@gmail.com
@@ -56,6 +71,7 @@ files:
56
71
  - Gemfile
57
72
  - Rakefile
58
73
  - examples/client.rb
74
+ - examples/client_siantra_base.rb
59
75
  - examples/server.rb
60
76
  - lib/sq_auth.rb
61
77
  - lib/sq_auth/sq_auth_access.rb
@@ -103,15 +119,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
119
  version: '0'
104
120
  requirements: []
105
121
  rubyforge_project: sq_auth
106
- rubygems_version: 1.8.17
122
+ rubygems_version: 1.8.18
107
123
  signing_key:
108
124
  specification_version: 3
109
125
  summary: SQ sevices authentication gem
110
- test_files:
111
- - spec/lib/sq_auth/sq_auth_client_spec.rb
112
- - spec/lib/sq_auth/sq_auth_request_spec.rb
113
- - spec/lib/sq_auth/sq_auth_server_interface/basic_server_spec.rb
114
- - spec/lib/sq_auth/sq_auth_sessions_spec.rb
115
- - spec/lib/sq_auth/sq_auth_user/basic_user_spec.rb
116
- - spec/lib/sq_auth_spec.rb
117
- - spec/spec_helper.rb
126
+ test_files: []