adsk_auth_service 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
  SHA1:
3
- metadata.gz: 9a5ce71ed42e6704a80403654d3b6f9748d9488c
4
- data.tar.gz: db1fbd30c00594ad1d285ca84f16e8744b61806f
3
+ metadata.gz: 3cb5e95ef1b397e51967320a3809d7ab3c3a6783
4
+ data.tar.gz: bb1e2dbbbbce8684d4c7d4bc5272038e2663728f
5
5
  SHA512:
6
- metadata.gz: 173745f99944fd833e002e527100e39c545ec5d3110f9d28c9ca6039408f320c1143ef0e83f630d11092f9eac5d846cf452f75fa70e64dc127f8e6d9571879cd
7
- data.tar.gz: c4bde4a2737f69f8fcb08dca49806ae5c0cf041828d6016153d1b8f86b9ee6b26bf65b33f3ddfb6d29a1fdbae90743a21062b8b080a35136c294700e30797653
6
+ metadata.gz: b12800b6e40701cd2c08c537b52b682be70ddadbcd0a4b7bb104bcc9b4d076ae2bc48218e6344c69bb32e3e42d957ef768f6ba79b50232b862d86dd322725728
7
+ data.tar.gz: d51e7e73505e28154ec20843349d04635260e61b8e93f706f471fd42e6d27986823647c28ec831e263fb78826497418a09043eb31708e33411e067ca962d3110
data/Gemfile CHANGED
@@ -2,4 +2,5 @@ source 'https://rubygems.org'
2
2
 
3
3
  gem 'rspec'
4
4
  gem 'logging'
5
- gem 'activesupport'
5
+ gem 'activesupport'
6
+ gem 'dalli'
@@ -1,15 +1,24 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'adsk_auth_service'
3
- s.version = '1.0.1'
3
+ s.version = '1.0.2'
4
4
  s.summary = "Autodesk second phase token retrieval"
5
5
  s.description = "A gem for Autodesk 2-phase authentication service."
6
6
  s.authors = ['Linh Chau']
7
7
  s.email = 'chauhonglinh@gmail.com'
8
8
  s.files = [
9
- './Gemfile', './adsk_auth_service.gemspec', 'lib/adsk_auth_service.rb',
10
- 'lib/services/auth_service.rb', 'lib/services/sdk_logger.rb', 'lib/utils/net_util.rb',
11
- 'spec/services/auth_service_spec.rb', 'spec/rspec_helper.rb', 'conf/auth_keys.example.yml'
9
+ './Gemfile', './adsk_auth_service.gemspec',
10
+ 'lib/adsk_auth_service.rb',
11
+ 'lib/services/auth_service.rb', 'lib/services/config_service.rb',
12
+ 'lib/services/sdk_logger.rb', 'lib/services/token_cache_service.rb',
13
+ 'lib/caches/mc_cache.rb',
14
+ 'lib/utils/net_util.rb',
15
+
12
16
  ]
13
17
  s.homepage = 'https://git.autodesk.com/t-chaul/adsk_auth_service.git'
14
18
  s.license = 'MIT'
15
- end
19
+ s.add_runtime_dependency 'logging', '~> 0'
20
+ s.add_runtime_dependency 'activesupport'
21
+ s.add_runtime_dependency 'dalli', '~> 0'
22
+
23
+ s.add_development_dependency 'rspec', '~> 3.1'
24
+ end
@@ -1,5 +1,13 @@
1
1
  require 'yaml'
2
+ require_relative 'services/config_service'
2
3
 
3
- ['services/auth_service', 'services/sdk_logger', 'utils/net_util'].each do |rb_file|
4
- require rb_file
4
+ ['caches', 'services', 'utils'].each do |sub_path|
5
+ rb_files = Dir.glob("#{File.expand_path('.')}/lib/#{sub_path}/*.rb")
6
+
7
+ if rb_files.empty?
8
+ spec = Gem::Specification.find_by_name('adsk_auth_service')
9
+ rb_files = Dir.glob("#{spec.gem_dir}/lib/#{sub_path}/*.rb")
10
+ end
11
+
12
+ rb_files.each { |rb_file| require rb_file }
5
13
  end
@@ -0,0 +1,42 @@
1
+ require 'dalli'
2
+
3
+ class McCache
4
+ class << self
5
+ def client
6
+ @@client
7
+ end
8
+
9
+ def initialize
10
+ @@env = ConfigService.environment
11
+ config = ConfigService.load_config('memcached.yml')[@@env]
12
+ host = config['host']
13
+ options = config.dup
14
+ options.delete('host')
15
+ @@client = Dalli::Client.new(host, options)
16
+ end #initialize
17
+
18
+
19
+ # Cache API, mimics ActiveSupport::Cache::Store
20
+ # http://api.rubyonrails.org/classes/ActiveSupport/Cache/Store.html
21
+
22
+ def read(key, options = {})
23
+ client.get(key, options)
24
+ end
25
+
26
+ def write(key, value, options = {})
27
+ client.set(key, value, options[:expires_in], options)
28
+ end
29
+
30
+ def delete(key, options = {})
31
+ deleted = read(key)
32
+ client.delete(key)
33
+ deleted
34
+ end
35
+
36
+ def token_key
37
+ "#{@@env}_token_data"
38
+ end
39
+ end #class methods
40
+
41
+ initialize
42
+ end
@@ -0,0 +1,30 @@
1
+ require 'active_support'
2
+ require 'active_support/core_ext'
3
+
4
+ class ConfigService
5
+ class << self
6
+ def load_config(config_file_name)
7
+ app_root = (defined? APP_ROOT)? APP_ROOT : File.expand_path('.')
8
+
9
+ config_file = nil
10
+ ['conf', 'config'].each do |sub_path|
11
+ if File.exist?("#{app_root}/#{sub_path}/#{config_file_name}")
12
+ config_file = "#{app_root}/#{sub_path}/#{config_file_name}"
13
+ break
14
+ end
15
+ end
16
+
17
+ raise("You must have the file #{config_file_name} in either 'conf' or 'config' directory of your application") unless config_file
18
+
19
+ YAML.load_file(config_file)
20
+ end
21
+
22
+ def environment
23
+ return Rails.env if defined? Rails
24
+ return ENV['RACK_ENV'] if ENV['RACK_ENV'].present?
25
+ 'local'
26
+ rescue => error
27
+ 'local'
28
+ end
29
+ end # class methods
30
+ end
@@ -0,0 +1,44 @@
1
+ require 'adsk_auth_service'
2
+
3
+ require_relative './config_service'
4
+
5
+ class TokenCacheService
6
+ class << self
7
+ def cache
8
+ # The cache supports the following API functions:
9
+ # - read(key, options = {})
10
+ # - write(key, value, options = {})
11
+ # - delete(key, options = {})
12
+ # - token_key
13
+ @@cache
14
+ end
15
+
16
+ def cache=(other_cache)
17
+ @@cache = other_cache
18
+ end
19
+
20
+ def initialize
21
+ @@env = ConfigService.environment
22
+ config = ConfigService.load_config('cache_config.yml')[@@env]
23
+
24
+ @@cache = Object.const_get(config['cache'])
25
+
26
+ end #initialize
27
+
28
+ def get_token
29
+ token_data = cache.read(cache.token_key)
30
+ if token_data.nil?
31
+ token_data = AuthService.oauth_token
32
+ set_token(token_data)
33
+ end
34
+ token_data
35
+ end
36
+
37
+ def set_token(token_data)
38
+ cache.write(cache.token_key, token_data, { expires_in: token_data['expires_in'].to_i })
39
+ end
40
+
41
+ end #class methods
42
+
43
+ initialize
44
+ end
@@ -82,9 +82,7 @@ class NetUtil
82
82
  end
83
83
 
84
84
  def NetUtil.set_ssl(request, url)
85
- SdkLogger.logger.debug("URL is #{url}")
86
85
  if url.start_with? 'https'
87
- SdkLogger.logger.debug("Use https - URL is #{url}")
88
86
  request.use_ssl = true
89
87
  request.verify_mode = OpenSSL::SSL::VERIFY_NONE
90
88
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adsk_auth_service
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
  - Linh Chau
@@ -9,7 +9,63 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2014-11-16 00:00:00.000000000 Z
12
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: logging
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activesupport
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: dalli
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.1'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.1'
13
69
  description: A gem for Autodesk 2-phase authentication service.
14
70
  email: chauhonglinh@gmail.com
15
71
  executables: []
@@ -18,13 +74,13 @@ extra_rdoc_files: []
18
74
  files:
19
75
  - "./Gemfile"
20
76
  - "./adsk_auth_service.gemspec"
21
- - conf/auth_keys.example.yml
22
77
  - lib/adsk_auth_service.rb
78
+ - lib/caches/mc_cache.rb
23
79
  - lib/services/auth_service.rb
80
+ - lib/services/config_service.rb
24
81
  - lib/services/sdk_logger.rb
82
+ - lib/services/token_cache_service.rb
25
83
  - lib/utils/net_util.rb
26
- - spec/rspec_helper.rb
27
- - spec/services/auth_service_spec.rb
28
84
  homepage: https://git.autodesk.com/t-chaul/adsk_auth_service.git
29
85
  licenses:
30
86
  - MIT
@@ -1,25 +0,0 @@
1
- local:
2
- consumer_key: YOUR_CONSUMER_KEY
3
- consumer_secret: YOUR_CONSUMER_SECRET
4
- url: https://developer-dev.api.autodesk.com/authentication/v1/authenticate
5
-
6
- development:
7
- consumer_key: YOUR_CONSUMER_KEY
8
- consumer_secret: YOUR_CONSUMER_SECRET
9
- url: https://developer-dev.api.autodesk.com/authentication/v1/authenticate
10
-
11
- test:
12
- consumer_key: YOUR_CONSUMER_KEY
13
- consumer_secret: YOUR_CONSUMER_SECRET
14
- url: https://developer-dev.api.autodesk.com/authentication/v1/authenticate
15
-
16
- stage:
17
- consumer_key: YOUR_CONSUMER_KEY
18
- consumer_secret: YOUR_CONSUMER_SECRET
19
- url: https://developer-stg.api.autodesk.com/authentication/v1/authenticate
20
-
21
- production:
22
- consumer_key: YOUR_CONSUMER_KEY
23
- consumer_secret: YOUR_CONSUMER_SECRET
24
- url: https://developer.api.autodesk.com/authentication/v1/authenticate
25
-
data/spec/rspec_helper.rb DELETED
@@ -1,6 +0,0 @@
1
- require 'rspec'
2
- require 'yaml'
3
-
4
- ['lib/services', 'lib/utils'].each do |sub_path|
5
- Dir.glob("#{File.expand_path('.')}/#{sub_path}/*.rb").each { |rb_file| require rb_file }
6
- end
@@ -1,26 +0,0 @@
1
- require_relative('../rspec_helper')
2
-
3
- describe AuthService do
4
- context 'load_config' do
5
- it 'load config from YAML file' do
6
- config = AuthService.load_config
7
- expect(config).not_to be_nil
8
- expect(config.is_a? Hash).to eql(true)
9
- end
10
- end
11
-
12
- context 'oauth_token' do
13
- it 'returns auth token' do
14
- token_data = AuthService.oauth_token
15
- puts("Token #{token_data}")
16
-
17
- # token_data['access_token'] is the real token
18
- expect(token_data).not_to be_nil
19
- expect(token_data.is_a? Hash).to eql(true)
20
- expect(token_data['token_type']).not_to be_nil
21
- expect(token_data['expires_in']).not_to be_nil
22
- expect(token_data['access_token']).not_to be_nil
23
- end
24
- end
25
-
26
- end