auther 2.0.0 → 2.1.0
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/README.md +28 -20
- data/lib/auther/gatekeeper.rb +14 -16
- data/lib/auther/version.rb +1 -1
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18b92be2eec96e15a96b6b5948d50047ca931f84
|
4
|
+
data.tar.gz: cc5ff3d9525debbaffa8fdcffc62699f3043f48f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30217fb220fd13516234275e3c13e9da8e03b76b38fdde89b43f840804fd68ecc89860e4b40382c460cefde19192af186043ec38f94e1eb2fafb440869c4a3fb
|
7
|
+
data.tar.gz: fbd2f2b8e4d6a9ab9767a1a8332657c2e74f51b1d37cbb47d90b4f5b59c81387b649f5d9246dbbb853e9a5489f04be4113e2c2ad8ba672ff7dbfb556526ccda3
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/README.md
CHANGED
@@ -55,11 +55,11 @@ Add the following to your Gemfile:
|
|
55
55
|
|
56
56
|
Run the generator to configure and initialize your application:
|
57
57
|
|
58
|
-
|
58
|
+
rails generate auther:install
|
59
59
|
|
60
60
|
# Usage
|
61
61
|
|
62
|
-
|
62
|
+
Launch your Rails application and visit either of the following routes:
|
63
63
|
|
64
64
|
http://localhost:3000/login
|
65
65
|
http://localhost:3000/admin/example # Assumes this route exists. Will redirect to /login if not authorized.
|
@@ -69,17 +69,6 @@ Use the following credentials to login:
|
|
69
69
|
* Login: test@test.com
|
70
70
|
* Password: password
|
71
71
|
|
72
|
-
To encrypt/decrypt account credentials, launch a rails console and type the following:
|
73
|
-
|
74
|
-
# Best if more than 150 characters and gibberish to read. Must be the same as defined in auther settings.
|
75
|
-
cipher = Auther::Cipher.new "vuKrwD9XWoYuv@s99?tR(9VqryiL,KV{W7wFnejUa4QcVBP+D{2rD4JfuD(mXgA=$tNK4Pfn#NeGs3o3TZ3CqNc^Qb"
|
76
|
-
|
77
|
-
# Do this to encrypt an unecrypted value.
|
78
|
-
cipher.encrypt "test@test.com"
|
79
|
-
|
80
|
-
# Do this to decrypt an encrypted value.
|
81
|
-
cipher.decrypt "N3JzR213WlBISDZsMjJQNkRXbEVmYVczbVdnMHRYVHRud29lOWRCekp6ST0tLWpFMkROekUvWDBkOHZ4ZngxZHV6clE9PQ==--cd863c39991fa4bb9a35de918aa16da54514e331"
|
82
|
-
|
83
72
|
# Customization
|
84
73
|
|
85
74
|
## Initializer
|
@@ -100,6 +89,18 @@ The initializer comes installed with the following settings:
|
|
100
89
|
]
|
101
90
|
}
|
102
91
|
|
92
|
+
**IMPORTANT**: The encrypted login/password credentials must be changed and re-encrypted before deploying to production!
|
93
|
+
To encrypt/decrypt account credentials, launch a rails console and run the following:
|
94
|
+
|
95
|
+
# Best if more than 150 characters and gibberish to read. Must be the same as defined in auther settings.
|
96
|
+
cipher = Auther::Cipher.new "vuKrwD9XWoYuv@s99?tR(9VqryiL,KV{W7wFnejUa4QcVBP+D{2rD4JfuD(mXgA=$tNK4Pfn#NeGs3o3TZ3CqNc^Qb"
|
97
|
+
|
98
|
+
# Do this to encrypt an unecrypted value.
|
99
|
+
cipher.encrypt "test@test.com"
|
100
|
+
|
101
|
+
# Do this to decrypt an encrypted value.
|
102
|
+
cipher.decrypt "N3JzR213WlBISDZsMjJQNkRXbEVmYVczbVdnMHRYVHRud29lOWRCekp6ST0tLWpFMkROekUvWDBkOHZ4ZngxZHV6clE9PQ==--cd863c39991fa4bb9a35de918aa16da54514e331"
|
103
|
+
|
103
104
|
The initializer can be customized as follows:
|
104
105
|
|
105
106
|
* *title* - Optional. The HTML page title (as rendered within a browser tab). Default: "Authorization".
|
@@ -187,11 +188,18 @@ Auther settings:
|
|
187
188
|
|
188
189
|
# Tests
|
189
190
|
|
190
|
-
To test,
|
191
|
+
To test, run:
|
192
|
+
|
193
|
+
bundle exec rspec spec
|
194
|
+
|
195
|
+
# Upgrading
|
196
|
+
|
197
|
+
For those using Auther 1.x.x, there are a few minor changes to be applied in order to upgrade to 2.x.x:
|
191
198
|
|
192
|
-
0.
|
193
|
-
|
194
|
-
0.
|
199
|
+
0. Move the old Auther settings (i.e. `config/application.rb`) into an Auther initilizer (i.e.
|
200
|
+
`config/initializers/auther.rb`). Read the *Customization* section above for additional instruction.
|
201
|
+
0. All account settings have changed from `login` and `password` to `encrypted_login` and `encrypted_password` keys.
|
202
|
+
0. The `success_url` account settings have been renamed to `authorized_url`.
|
195
203
|
|
196
204
|
# Troubleshooting
|
197
205
|
|
@@ -208,7 +216,7 @@ To test, do the following:
|
|
208
216
|
|
209
217
|
# Contributions
|
210
218
|
|
211
|
-
Read CONTRIBUTING for details.
|
219
|
+
Read [CONTRIBUTING](CONTRIBUTING.md) for details.
|
212
220
|
|
213
221
|
# Credits
|
214
222
|
|
@@ -217,9 +225,9 @@ Developed by [Brooke Kuhlmann](http://www.alchemists.io) at [Alchemists](http://
|
|
217
225
|
# License
|
218
226
|
|
219
227
|
Copyright (c) 2014 [Alchemists](http://www.alchemists.io).
|
220
|
-
Read the LICENSE for details.
|
228
|
+
Read the [LICENSE](LICENSE.md) for details.
|
221
229
|
|
222
230
|
# History
|
223
231
|
|
224
|
-
Read the CHANGELOG for details.
|
232
|
+
Read the [CHANGELOG](CHANGELOG.md) for details.
|
225
233
|
Built with [Gemsmith](https://github.com/bkuhlmann/gemsmith).
|
data/lib/auther/gatekeeper.rb
CHANGED
@@ -54,9 +54,9 @@ module Auther
|
|
54
54
|
details = %(Account: "#{account_name}". Blacklist: #{blacklist}. Request Path: "#{request_path}".)
|
55
55
|
|
56
56
|
if authorized
|
57
|
-
log_info %(Authorization failed! #{details})
|
58
|
-
else
|
59
57
|
log_info %(Authorization passed. #{details})
|
58
|
+
else
|
59
|
+
log_info %(Authorization failed! #{details})
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
@@ -73,14 +73,13 @@ module Auther
|
|
73
73
|
paths.map { |path| path.chomp '/' }
|
74
74
|
end
|
75
75
|
|
76
|
-
def blacklisted_paths
|
77
|
-
paths = accounts.map { |account| clean_paths account.fetch(:paths) }
|
76
|
+
def blacklisted_paths
|
77
|
+
paths = settings.accounts.map { |account| clean_paths account.fetch(:paths) }
|
78
78
|
paths.flatten.uniq
|
79
79
|
end
|
80
80
|
|
81
|
-
def blacklisted_matched_paths
|
82
|
-
|
83
|
-
paths.select { |blacklisted_path| path.include? blacklisted_path }
|
81
|
+
def blacklisted_matched_paths path
|
82
|
+
blacklisted_paths.select { |blacklisted_path| path.include? blacklisted_path }
|
84
83
|
end
|
85
84
|
|
86
85
|
def authenticated? account
|
@@ -103,21 +102,20 @@ module Auther
|
|
103
102
|
end
|
104
103
|
|
105
104
|
def account_authorized? account, path
|
106
|
-
|
105
|
+
all_paths = blacklisted_paths
|
106
|
+
account_paths = clean_paths account.fetch(:paths)
|
107
|
+
restricted_paths = all_paths - account_paths
|
107
108
|
|
108
|
-
authorized =
|
109
|
-
log_authorization authorized, account.fetch(:name),
|
109
|
+
authorized = !restricted_paths.include?(path)
|
110
|
+
log_authorization authorized, account.fetch(:name), all_paths, request.path
|
110
111
|
authorized
|
111
112
|
end
|
112
113
|
|
113
114
|
def authorized? path
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
if blacklisted_matched_paths(accounts, path).any?
|
118
|
-
log_info %(Requested path "#{request.path}" found in blacklisted paths: #{all_blacklisted_paths}.)
|
115
|
+
if blacklisted_matched_paths(path).any?
|
116
|
+
log_info %(Requested path "#{request.path}" found in blacklisted paths: #{blacklisted_paths}.)
|
119
117
|
account = find_account
|
120
|
-
account && authenticated?(account) &&
|
118
|
+
account && authenticated?(account) && account_authorized?(account, path)
|
121
119
|
else
|
122
120
|
true
|
123
121
|
end
|
data/lib/auther/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: auther
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brooke Kuhlmann
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
SJpzzzZ8gO6BKn4fhd+ENNQ333Qy3nuNk07TVIaNnlgeHhowUDuD9T7Z8Lka0pt3
|
31
31
|
4PteiTppsf0SSVAM9zSO5IuFngXMRwWgvjOfXE70f43RDuUVTCSyylc=
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date: 2014-06-
|
33
|
+
date: 2014-06-17 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: pry-byebug
|
metadata.gz.sig
CHANGED
Binary file
|