anoubis_sso_server 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 99a948f147bd85dbac2a05e1776cb9d782df8270d8c952231954891b5aefbe90
4
- data.tar.gz: 30f5032129b1b8e43665842c528e6a6f0e4a8f3bb1e843a4012b78b326918a67
3
+ metadata.gz: '0148b84eeebcb0d63e3959c2bd2fe28baeae62a2f223d4e314b5fd3a9e4a9401'
4
+ data.tar.gz: 13ca48de82c3d0028bfe0e1954324a404f7a6db95ff7d2388d1c9772d8e4414a
5
5
  SHA512:
6
- metadata.gz: 4058632c8ea913bd5456a3fc55485b1ad99644f93065a6e92a0192d28bf79c6de8cb221204007047f37a1e4186829dd670202f687b24c687c428092f6c2c027a
7
- data.tar.gz: 26f2624db76c5bca8f94b923ae040554a7f41abf02fcfd4bf6065f9f0e4cd6173221c0e493f9ca998bbfec8fc7e830fe64fdb8eda33e2fc6a70a7f572f34fb6e
6
+ metadata.gz: bf848a61c3f01f4e1e5effa132c0d1a88a72a0f4f550fa00819aacb9482658d6ee2094b694849bb1742054c041eb37d0c1e6f9fe7b1798e26ae113907aed25e5
7
+ data.tar.gz: bedcc154d4636babacc398b3e86ac141bf7898013436104c8c27355cf30efd20c12726cae5f8812844d1bb7855e94dec425ad9fce2cc7257331a361296e8fc75
data/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
1
  ## [Released]
2
2
 
3
+ ## [1.0.2] - 2022-02-28
4
+ - Action /api/1/auth was added.
5
+
3
6
  ## [1.0.1] - 2022-02-27
4
7
  - Library was released.
5
8
 
@@ -272,4 +272,21 @@ class AnoubisSsoServer::ApplicationController < Anoubis::ApplicationController
272
272
 
273
273
  user
274
274
  end
275
+
276
+ ##
277
+ # Check parameters
278
+ # @param list [Array] Array of parameters to check
279
+ def check_listed_parameters(list)
280
+ list.each do |key|
281
+ return I18n.t('anoubis.errors.is_not_defined', title: key) unless params.key? key.to_sym
282
+
283
+ return I18n.t('anoubis.errors.is_not_correct', title: key) unless params[key.to_sym]
284
+
285
+ params[key.to_sym].strip!
286
+
287
+ return I18n.t('anoubis.errors.is_not_correct', title: key) if params[key.to_sym] == ''
288
+ end
289
+
290
+ nil
291
+ end
275
292
  end
@@ -56,7 +56,7 @@ class AnoubisSsoServer::MainController < AnoubisSsoServer::ApplicationController
56
56
  code = nil
57
57
  if params[:code]
58
58
  begin
59
- code = JSON.parse(self.redis.get("#{self.redis_prefix}login_code:#{params[:code]}"),{ symbolize_names: true })
59
+ code = JSON.parse(self.redis.get("#{redis_prefix}login_code:#{params[:code]}"),{ symbolize_names: true })
60
60
  rescue
61
61
 
62
62
  end
@@ -81,4 +81,46 @@ class AnoubisSsoServer::MainController < AnoubisSsoServer::ApplicationController
81
81
  redirect_to redirect_url + "code=#{auth_code}", { allow_other_host: true }
82
82
  end
83
83
  end
84
+
85
+ ##
86
+ # Procedure check current login status of user and redirect to URL used for call /openid/oauth2/auth.
87
+ def auth
88
+ redirect_url = sso_silent_url
89
+ redirect_url += redirect_url.index('?') ? '&' : '?'
90
+
91
+ err = check_listed_parameters %w[code]
92
+
93
+ if err
94
+ redirect_to redirect_url + 'error=' + ERB::Util.url_encode(err), { allow_other_host: true }
95
+ return
96
+ end
97
+
98
+ begin
99
+ session = JSON.parse(redis.get("#{redis_prefix}session:#{cookies[:oauth_session]}"), { symbolize_names: true })
100
+ rescue StandardError
101
+ session = nil
102
+ cookies[:oauth_session] = nil
103
+ end
104
+
105
+ unless session
106
+ redirect_to redirect_url + 'error=' + ERB::Util.url_encode(I18n.t('anoubis.errors.session_expired')), { allow_other_host: true }
107
+ return
108
+ end
109
+
110
+ begin
111
+ auth_code = redis.get("#{redis_prefix}auth_code:#{params[:code]}")
112
+ code = JSON.parse(redis.get("#{redis_prefix}login_code:#{auth_code}"), { symbolize_names: true })
113
+ rescue StandardError
114
+ code = nil
115
+ end
116
+
117
+ unless code
118
+ redirect_to redirect_url + 'error=' + ERB::Util.url_encode(I18n.t('anoubis.errors.is_not_correct', title: 'code')), { allow_other_host: true }
119
+ return
120
+ end
121
+
122
+ self.redis.del("#{redis_prefix}auth_code:#{params[:code]}")
123
+ self.redis.del("#{redis_prefix}login_code:#{auth_code}")
124
+ redirect_to code[:original_url], { allow_other_host: true }
125
+ end
84
126
  end
@@ -281,23 +281,6 @@ class AnoubisSsoServer::OpenIdController < AnoubisSsoServer::ApplicationControll
281
281
  nil
282
282
  end
283
283
 
284
- ##
285
- # Check parameters
286
- # @param list [Array] Array of parameters to check
287
- def check_listed_parameters(list)
288
- list.each do |key|
289
- return I18n.t('anoubis.errors.is_not_defined', title: key) unless params.key? key.to_sym
290
-
291
- return I18n.t('anoubis.errors.is_not_correct', title: key) unless params[key.to_sym]
292
-
293
- params[key.to_sym].strip!
294
-
295
- return I18n.t('anoubis.errors.is_not_correct', title: key) if params[key.to_sym] == ''
296
- end
297
-
298
- nil
299
- end
300
-
301
284
  ##
302
285
  # Check if page should be redirected to url
303
286
  # @param error [String] Error message
data/config/routes.rb CHANGED
@@ -5,7 +5,7 @@ AnoubisSsoServer::Engine.routes.draw do
5
5
  scope path: 'api', defaults: { format: 'json' } do
6
6
  scope path: ':version' do
7
7
  get 'login', to: 'anoubis_sso_server/main#login', as: 'api_internal_login'
8
- #get 'auth', to: 'main#auth'
8
+ get 'auth', to: 'anoubis_sso_server/main#auth', as: 'api_internal_auth'
9
9
  get 'dashboard', to: 'anoubis_sso_server/index#dashboard'
10
10
  get 'menu', to: 'anoubis_sso_server/index#menu'
11
11
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module AnoubisSsoServer
4
4
  ## Library version
5
- VERSION = "1.0.1"
5
+ VERSION = "1.0.2"
6
6
  end
metadata CHANGED
@@ -1,211 +1,211 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: anoubis_sso_server
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrey Ryabov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-02-27 00:00:00.000000000 Z
11
+ date: 2022-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: anoubis
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.0
19
+ version: 1.0.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.0.0
26
+ version: 1.0.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rails
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: 7.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 7.0.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: redis
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: 4.5.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 4.5.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bcrypt
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: 3.1.16
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 3.1.16
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rest-client
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: 2.1.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 2.1.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: mysql2
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: 0.5.3
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: 0.5.3
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: jwt
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: 2.3.0
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: 2.3.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rake
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - "~>"
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0.13'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0.13'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rspec
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ">="
129
+ - - "~>"
130
130
  - !ruby/object:Gem::Version
131
131
  version: 3.11.0
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ">="
136
+ - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 3.11.0
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: rspec-rails
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - ">="
143
+ - - "~>"
144
144
  - !ruby/object:Gem::Version
145
145
  version: '5.1'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ">="
150
+ - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: '5.1'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: factory_bot_rails
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ">="
157
+ - - "~>"
158
158
  - !ruby/object:Gem::Version
159
159
  version: 6.2.0
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - ">="
164
+ - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: 6.2.0
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: dotenv
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - ">="
171
+ - - "~>"
172
172
  - !ruby/object:Gem::Version
173
173
  version: '2.7'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - ">="
178
+ - - "~>"
179
179
  - !ruby/object:Gem::Version
180
180
  version: '2.7'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: simplecov
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - ">="
185
+ - - "~>"
186
186
  - !ruby/object:Gem::Version
187
187
  version: '0.21'
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - ">="
192
+ - - "~>"
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0.21'
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: rubocop
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
- - - ">="
199
+ - - "~>"
200
200
  - !ruby/object:Gem::Version
201
- version: '0'
201
+ version: '1.25'
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
- - - ">="
206
+ - - "~>"
207
207
  - !ruby/object:Gem::Version
208
- version: '0'
208
+ version: '1.25'
209
209
  description: Library for create basic SSO Server based on OAUTH authentication.
210
210
  email:
211
211
  - andrey.ryabov@ra-company.kz
@@ -224,7 +224,6 @@ files:
224
224
  - LICENSE.txt
225
225
  - README.md
226
226
  - Rakefile
227
- - anoubis_sso_server.gemspec
228
227
  - app/controllers/anoubis_sso_server/application_controller.rb
229
228
  - app/controllers/anoubis_sso_server/data_controller.rb
230
229
  - app/controllers/anoubis_sso_server/index_controller.rb
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "lib/anoubis_sso_server/version"
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = "anoubis_sso_server"
7
- spec.version = AnoubisSsoServer::VERSION
8
- spec.authors = ["Andrey Ryabov"]
9
- spec.email = ["andrey.ryabov@ra-company.kz"]
10
-
11
- spec.summary = "Library for create basic SSO Server based on OAUTH authentication."
12
- spec.description = "Library for create basic SSO Server based on OAUTH authentication."
13
- spec.homepage = "https://github.com/RA-Company/"
14
- spec.license = "MIT"
15
- spec.required_ruby_version = ">= 2.7.1"
16
-
17
- spec.metadata["homepage_uri"] = spec.homepage
18
- spec.metadata["source_code_uri"] = "https://github.com/RA-Company/anoubis_sso_server"
19
- spec.metadata["changelog_uri"] = "https://github.com/RA-Company/anoubis_sso_server/blob/main/CHANGELOG.md"
20
-
21
- # Specify which files should be added to the gem when it is released.
22
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
23
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
24
- `git ls-files -z`.split("\x0").reject do |f|
25
- (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
26
- end
27
- end
28
- spec.bindir = "exe"
29
- spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
30
- spec.require_paths = ["lib"]
31
-
32
- spec.add_dependency "anoubis", ">= 1.0.0"
33
- spec.add_dependency "rails", ">= 7.0.0"
34
- spec.add_dependency "redis", ">= 4.5.1"
35
- spec.add_dependency "bcrypt", ">= 3.1.16"
36
- spec.add_dependency "rest-client", ">= 2.1.0"
37
- spec.add_dependency "mysql2", ">= 0.5.3"
38
- spec.add_dependency "jwt", ">= 2.3.0"
39
-
40
- spec.add_development_dependency "rake", ">= 0.13"
41
- spec.add_development_dependency "rspec", ">= 3.11.0"
42
- spec.add_development_dependency "rspec-rails", ">= 5.1"
43
- spec.add_development_dependency "factory_bot_rails", ">= 6.2.0"
44
- spec.add_development_dependency "dotenv", '>= 2.7'
45
- spec.add_development_dependency "simplecov", '>= 0.21'
46
- spec.add_development_dependency "rubocop"
47
-
48
- # For more information and examples about making a new gem, check out our
49
- # guide at: https://bundler.io/guides/creating_gem.html
50
- end