ssomg 0.1.5 → 0.1.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e5f11987eabd41de7a0b4598c8bdf097d4162581
4
- data.tar.gz: b2a3b76f18225806ebcd039f5400ed7e668ecad3
3
+ metadata.gz: f11651234926cd5a9a2737615dca13b050ae33c0
4
+ data.tar.gz: 3bce020b4028191752629c1f8804c9f3b37443c9
5
5
  SHA512:
6
- metadata.gz: 34c673603c2bf52505e9c0fa4227e8f7ca1b35811abff6de884a23f59e6d628a90c6f1ec0c2b435a4cf8f833dc8f59cc5019595031dccfbb940d6e01d272a9dc
7
- data.tar.gz: 76decafb5f7de3db01793668cb16f6e5029438b25c4ea7abb5b16ff7da580d9cf2019d60fbd05b86f71e01b037cffc4bd7bb8dd3c70d4c8715955a64c0822997
6
+ metadata.gz: 4b92f3b5b3faff6622d65b12a91ab6248fbb16ca9921ec88e33125e0f3eecf43173f355093ace2cdbcfee6d6643cfee09b55c1e86df4be6615aceec7ef8f5663
7
+ data.tar.gz: 681116287858b67e9975aff6d359f256a7e2e953161752e505cf432630f971f95a4a208480a341c0b50fd27620634e6b07d3af344c72de4435f6a64a28753205
@@ -19,10 +19,28 @@ module Ssomg
19
19
  decoded_token = ::JWT.decode token, Ssomg.PUB_KEY, true, { algorithm: 'RS256' }
20
20
  @user = decoded_token[ 0 ]
21
21
  rescue ::JWT::ExpiredSignature
22
- cookies["ssomg_meta" ] = { :value => request.original_url, :secure => Rails.env.production?, :httponly => true }
23
- go_to_provider
24
- rescue StandardError
25
- # invalid token
22
+ if ( cookies["ssomg"] )
23
+ begin
24
+ decoded_token = ::JWT.decode token, Ssomg.PUB_KEY, true, { exp_leeway: 432000, algorithm: 'RS256' } #5 day leeway to ensure token is read
25
+ accessTokens = JSON.parse refresh( decoded_token[ 0 ]["refresh_token"] )
26
+ userToken = accessTokens[ENV["APP_ID"]]
27
+ cookies["ssomg" ] = { :value => accessTokens[ENV["APP_ID"]], :secure => Rails.env.production?, :httponly => true }
28
+ withoutMain = accessTokens.except!( ENV["APP_ID"] )
29
+ cookies["ssomg_all" ] = { :value => withoutMain.keys.join(","), :secure => Rails.env.production?, :httponly => true }
30
+ withoutMain.each { |key, value|
31
+ cookies["ssomg_" + key ] = { :value => value, :secure => Rails.env.production?, :httponly => true }
32
+ }
33
+ decoded_user = ::JWT.decode userToken, Ssomg.PUB_KEY, true, { algorithm: 'RS256' }
34
+ @user = decoded_user[ 0 ]
35
+ rescue StandardError => e
36
+ # raise e
37
+ end
38
+ else
39
+ cookies["ssomg_meta" ] = { :value => request.original_url, :secure => Rails.env.production?, :httponly => true }
40
+ go_to_provider
41
+ end
42
+ rescue StandardError => e
43
+ # raise e
26
44
  end
27
45
  end
28
46
  end
@@ -79,8 +97,25 @@ module Ssomg
79
97
  res = http.request(req)
80
98
  jwt = res.body
81
99
  return jwt
82
- rescue => e
83
- puts "failed #{e}"
100
+ rescue StandardError => e
101
+ # puts "failed #{e}"
102
+ end
103
+ end
104
+
105
+ def refresh_silent token
106
+ begin
107
+ uri = URI(ENV["SSO_HOST"] + "/auth/sso")
108
+ http = Net::HTTP.new(uri.host, uri.port )
109
+ req = Net::HTTP::Post.new(uri.path, {'Content-Type' =>'application/json'})
110
+ if uri.scheme == "https"
111
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
112
+ http.use_ssl = true
113
+ end
114
+ req.body = { :token => token }.to_json
115
+ res = http.request(req)
116
+ jwt = res.body
117
+ return jwt
118
+ rescue StandardError => e
84
119
  end
85
120
  end
86
121
 
data/lib/ssomg/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ssomg
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ssomg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henry McIntosh
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-08-19 00:00:00.000000000 Z
11
+ date: 2019-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler