omniauth-applicaster 1.9.0 → 2.0.0

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: d9bcca69fcde5b2efaf200357c1f787f5e36936ecc8027fdaff673b14fba079d
4
- data.tar.gz: 722a0df2373c6c06b00383576550a7e977f5b33c8a454e913e3f09674e75dd85
3
+ metadata.gz: 2082b22a6f4f98d7ffabb53f47c992f357d551fa689692172d4b3c27600c810a
4
+ data.tar.gz: 46d156b5ede9274f2725a136d2af9658ae1f82d28f737415d0bd273f2a73b886
5
5
  SHA512:
6
- metadata.gz: 4339cf40df8f62781ab957c3cf92cd5692aeb2bdc5d0fd6401a856ebf656fd6b703ef11f8d175c2383c2f721cb7a01c1d71a858a5cf646b406487c99f020a5a1
7
- data.tar.gz: 4a183580fc81efbd62fb8b70533a0f9e99aace2d6467d0f8d87dffb410b4c2118b3f933f3c83de354cfd82494acc58ea0f993fa236a328afd4551b2392ec4536
6
+ metadata.gz: 3b113f436fa3a9474913cf36d757fff9ab04695c4038e91ada024a22c6549f86b454129ac6ab4b5c8a8761f6d83a4362b54b114bddc50807796f47066e057697
7
+ data.tar.gz: 47260b3abf6278bdaa91bed92b1259c7f85c31fd1dbbe6ff24d197c52c83f02fee6769485e1570919cc1feda4116bcb3c2eba9c341f54b205c1e8a6fc8185760
data/README.md CHANGED
@@ -23,6 +23,7 @@ See [Omniauth](https://github.com/intridea/omniauth) for setting up omniauth.
23
23
  Applicaster::Accounts.configure do |config|
24
24
  config.client_id = "my-service-uid"
25
25
  config.client_secret = "my-service-secret"
26
+ config.request_proc = -> { Thread.current[:request] }
26
27
 
27
28
  if Rails.env.development?
28
29
  # Use local accounts service with Pow when in development
@@ -49,6 +50,12 @@ projects.
49
50
  ```ruby
50
51
  class ApplicationController < ActionController::Base
51
52
  include Applicaster::AuthHelpers
53
+
54
+ before_action :set_request_in_thread
55
+
56
+ def set_request_in_thread
57
+ Thread.current[:request] = request
58
+ end
52
59
  end
53
60
  ```
54
61
 
@@ -25,6 +25,8 @@ module Applicaster
25
25
 
26
26
  attribute :faraday_adapter, nil, default: :excon
27
27
 
28
+ # Add the request_proc attribute
29
+ attribute :request_proc, Proc, default: proc { nil }
28
30
 
29
31
  def default_base_url
30
32
  ENV["ACCOUNTS_BASE_URL"] || "https://accounts.applicaster.com/"
@@ -45,6 +45,17 @@ module Applicaster
45
45
  end
46
46
  end
47
47
 
48
+ def current_request
49
+ config.request_proc.call if config.request_proc
50
+ end
51
+
52
+ def log_with_request_context(message)
53
+ request = current_request
54
+ log_message = "#{message}, IP: #{request&.remote_ip}, User Agent: #{request&.user_agent}"
55
+
56
+ Rails.logger.error(log_message)
57
+ end
58
+
48
59
  def user_from_token(token)
49
60
  Rails.logger.info("Fetching user with token: #{token}")
50
61
  user = Applicaster::Accounts::User.new(
@@ -53,15 +64,15 @@ module Applicaster
53
64
  .body
54
65
  )
55
66
  if user.nil?
56
- Rails.logger.error("[Login Failed] - User fetch failed. Token: #{token}, IP: #{request.remote_ip}, User Agent: #{request.user_agent}")
67
+ Rails.logger.error("[Login Failed] - User fetch failed. Token: #{token}")
57
68
  end
58
69
  user
59
70
  rescue Faraday::ClientError => e
60
71
  if e.response && e.response[:status] == 401
61
- Rails.logger.error("[Login Failed] - Unauthorized access attempt detected. Invalid token: #{token}, IP: #{request.remote_ip}, User Agent: #{request.user_agent}, Error: #{e.message}")
72
+ log_with_request_context("[Login Failed] - Unauthorized access attempt detected. Invalid token: #{token}, Error: #{e.message}")
62
73
  nil
63
74
  else
64
- Rails.logger.error("[Login Failed] - Error fetching user. Token: #{token}, IP: #{request.remote_ip}, User Agent: #{request.user_agent}, Error: #{e.message}")
75
+ log_with_request_context("[Login Failed] - Error fetching user. Token: #{token}, Error: #{e.message}")
65
76
  raise
66
77
  end
67
78
  end
@@ -73,7 +84,7 @@ module Applicaster
73
84
  .body
74
85
  )
75
86
  rescue Faraday::ResourceNotFound
76
- Rails.logger.error("[Login Failed] - User not found. ID: #{id}, Token: #{token}, IP: #{request.remote_ip}, User Agent: #{request.user_agent}")
87
+ log_with_request_context("[Login Failed] - User not found. ID: #{id}, Token: #{token}")
77
88
  nil
78
89
  end
79
90
 
@@ -110,7 +121,7 @@ module Applicaster
110
121
  def user_data_from_omniauth(omniauth_credentials)
111
122
  access_token(omniauth_credentials).get("/api/v1/users/current.json").parsed
112
123
  rescue Faraday::ClientError => e
113
- Rails.logger.error("[Login Failed] - Failed to fetch user data from Omniauth. Error: #{e.message}")
124
+ log_with_request_context("[Login Failed] - Failed to fetch user data from Omniauth. Error: #{e.message}")
114
125
  raise
115
126
  end
116
127
 
@@ -137,7 +148,7 @@ module Applicaster
137
148
  .client_credentials
138
149
  .get_token
139
150
  rescue OAuth2::Error => e
140
- Rails.logger.error("[Login Failed] - Failed to get client credentials token. Error: #{e.message}")
151
+ log_with_request_context("[Login Failed] - Failed to get client credentials token. Error: #{e.message}")
141
152
  raise
142
153
  end
143
154
  end
@@ -7,7 +7,7 @@ module Applicaster
7
7
 
8
8
  def create
9
9
  session[:omniauth_credentials] = omniauth_credentials
10
- Rails.logger.info("Session created successfully for user. IP: #{request.remote_ip}, User Agent: #{request.user_agent}, Params: #{safe_user_params.inspect}")
10
+ Rails.logger.info("Session created successfully for user. IP: #{request.remote_ip}, User Agent: #{request.user_agent}, Params: #{params[:origin].inspect}")
11
11
 
12
12
  redirect_to(session.delete(:path_before_login) || '/')
13
13
  end
@@ -17,13 +17,12 @@ module Applicaster
17
17
  Rails.logger.info("Session destroyed for user: #{user_email}. IP: #{request.remote_ip}, User Agent: #{request.user_agent}")
18
18
 
19
19
  reset_session
20
- redirect_to config.base_url
20
+ redirect_to "/"
21
21
  end
22
22
 
23
23
  def failure
24
24
  Rails.logger.error({
25
25
  message: "[Login Failed] - Omniauth error with strategy '#{params[:strategy]}': #{params[:message]}",
26
- origin: params[:origin],
27
26
  IP: request.remote_ip,
28
27
  UserAgent: request.user_agent,
29
28
  Params: params[:origin],
@@ -1,5 +1,5 @@
1
1
  module OmniAuth
2
2
  module Applicaster
3
- VERSION = "1.9.0"
3
+ VERSION = "2.0.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-applicaster
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Neer Friedman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-01 00:00:00.000000000 Z
11
+ date: 2024-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler