ak4r 0.2.2 → 0.2.4

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: 30f9acbcce2837f1b5a58f93267a3a1fc36d329136b90cfeb30601f9e2603b3e
4
- data.tar.gz: eb9615af834214a2c7b091b536ba5e1f334ed13cbe782448d2e1eb100054f336
3
+ metadata.gz: 78438b5f45ef1980b47f4a9fb2f11d675e3a8224c17d394fb373c443a3060b41
4
+ data.tar.gz: 0f84d5a528f2f2d5d3af633867a7746e45e2d07d2d1a4c2a6be93cb9acded525
5
5
  SHA512:
6
- metadata.gz: f9345b35fd16afefe7063d8d6d7387d66fe7de9f0c441d940c9d402b1f32d148224db01560155d9156de3b6bf2ddc1248ec134896377d7b21f757eca016a72b2
7
- data.tar.gz: 3e13a6875030f334bf4210847fec3739d50d8d6f2a14065a407b50fb1c19891948d71ae32e006091ba66ba5e9dc171dda54b76d4300e7b1f9acf5f0884aaaf83
6
+ metadata.gz: 4d51f310266b2d15be1eccefffc346cd85ba003238cc3fe1be2841f7242ba003b3d1fdcda06145d2e8dbd32100c5879633431daaedace114a046ef34e3d92753
7
+ data.tar.gz: f0364f56140a6e0b67ef1aa761bac332f500cda2b7d40327b1939820ecec68cd6c4c022f991fc5d67ffb2f60050908f3a96d4d5989765eb54292278aff94c62d
@@ -59,10 +59,11 @@ module Ak4r
59
59
  raise Ak4r::ApiException.new(403, "API Key expired") if(api_key.valid_until && api_key.valid_until < Time.now)
60
60
 
61
61
  api_key_hash = Ak4r::TokenGenerator.digest(api_key_secret)
62
- raise Ak4r::ApiException.new(403, "API Key invalid") if(api_key_hash != api_key.hash)
62
+ raise Ak4r::ApiException.new(403, "API Key invalid") if(api_key_hash != api_key.key_hash)
63
63
 
64
64
  request = Rack::Request.new(env)
65
- scope = "#{request.request_method}:#{request.path}"
65
+ route = Rails.application.routes.recognize_path(request.path, {method: request.request_method}) || {controller: "route_path_not_recognized #{request.path}"}
66
+ scope = "#{request.request_method}:/#{route[:controller]}"
66
67
  raise Ak4r::ApiException.new(403, "API Key not allowed for scope #{scope}") unless(api_key.scopes.include?(scope))
67
68
  @app.call(env)
68
69
  end
@@ -19,7 +19,7 @@ module Ak4r
19
19
  loop do
20
20
  raw = self.friendly_token
21
21
  enc = OpenSSL::HMAC.hexdigest(DIGEST, key, raw)
22
- break [raw, enc] unless Ak4r::ApiKey.where(hash: enc).any?
22
+ break [raw, enc] unless Ak4r::ApiKey.where(key_hash: enc).any?
23
23
  end
24
24
  end
25
25
 
@@ -3,14 +3,14 @@ class CreateAk4rApiKey < ActiveRecord::Migration[4.2]
3
3
  create_table :ak4r_api_keys do |t|
4
4
  t.string :name
5
5
  t.string :prefix
6
- t.string :hash
6
+ t.string :key_hash
7
7
  t.string :scopes, array: true
8
8
  t.timestamp :valid_until
9
9
  t.timestamps
10
10
  end
11
11
 
12
12
  add_index :ak4r_api_keys, :prefix
13
- add_index :ak4r_api_keys, :hash
13
+ add_index :ak4r_api_keys, :key_hash
14
14
  end
15
15
 
16
16
  def self.down
data/lib/tasks/ak4r.rake CHANGED
@@ -9,11 +9,11 @@ namespace :ak4r do
9
9
  end
10
10
  end
11
11
  desc "Create new API Key"
12
- task :create, [:name, :scopes] => :environment do
12
+ task :create, [:name, :scopes] => :environment do |t, args|
13
13
  secret, hash = Ak4r::TokenGenerator.generate
14
14
  api_key = Ak4r::ApiKey.create(
15
15
  name: args[:name],
16
- hash: hash,
16
+ key_hash: hash,
17
17
  prefix: Ak4r::TokenGenerator.friendly_token(7),
18
18
  scopes: args[:scopes].split(';')
19
19
  )
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ak4r
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefano Salvador
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-04 00:00:00.000000000 Z
11
+ date: 2025-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -45,7 +45,7 @@ homepage: https://github.com/stefanosalvador/ak4r
45
45
  licenses:
46
46
  - MIT
47
47
  metadata: {}
48
- post_install_message:
48
+ post_install_message:
49
49
  rdoc_options: []
50
50
  require_paths:
51
51
  - lib
@@ -60,8 +60,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  requirements: []
63
- rubygems_version: 3.1.2
64
- signing_key:
63
+ rubygems_version: 3.4.20
64
+ signing_key:
65
65
  specification_version: 4
66
66
  summary: API Keys for Ruby on Rails
67
67
  test_files: []