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
|
-
|
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: []
|