sq_auth 0.0.21 → 0.0.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
|
-
|
15
|
-
|
16
|
-
|
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.
|
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
|
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
|
data/lib/sq_auth/version.rb
CHANGED
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.
|
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-
|
12
|
+
date: 2012-05-02 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
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:
|
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:
|
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:
|
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:
|
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:
|
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.
|
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: []
|