legion-crypt 1.4.18 → 1.4.19

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
  SHA256:
3
- metadata.gz: 9397c4eab60b75a13e4f1e9fd842ce6b4908d94d891e9ea29a893fb33e71d5ef
4
- data.tar.gz: 852ec5569b543089412ce28e96b32f6424e7da1f169e836d3e596dd51719c74d
3
+ metadata.gz: e3a746c03498b392437f0d7db81caca5f6daa84aeda465bbf0db71bb898d25f1
4
+ data.tar.gz: d27dfcdfa9032fa6bc8df4174f370c7896151c746bf8b810421d1c28d5d8e51b
5
5
  SHA512:
6
- metadata.gz: 59170bcaead98cda37e2be65b1e9b294ab4eff65fde9251ebb2de24390224e8ed6bf3d62a523a11cd9ac1f2ead894dbffeee79815194c583e47a565b9ac7ff1c
7
- data.tar.gz: 7f65e04abcb52c320f0d6e133569604d8eba37dcd4d63bcf046b0ba8fb70c631ebf4723bce2cd8ce728bf46a7b4992af389c3cb0da25bfd9c7c1176a38e56866
6
+ metadata.gz: 9e3a72a7a2fc6b78439f582b33c3c667fb40f1ef86c8a0201fb53e38d2d122e3689fa3496e11df36e5085a551753d58864a8033bc2cb028662922d87ce7afc9a
7
+ data.tar.gz: ab485a6da390007f060067bcca2863a5585fd6845f2dfc023658d48c6195364af7f99bf86f2492830d7991ae6a600a43fbd819d715412ca3f9c210fa95a830e3
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Legion::Crypt
2
2
 
3
+ ## [1.4.19] - 2026-03-26
4
+
5
+ ### Fixed
6
+ - `LeaseManager`, `VaultJwtAuth`, `LdapAuth`, `VaultKerberosAuth`: use `renewable?` instead of `renewable` to match Vault gem API
7
+ - `LeaseManager#fetch`: handle string/symbol key mismatch between resolver (strings) and cache (symbols)
8
+ - `VaultCluster#connect_all_clusters`: set top-level `vault.connected` flag after any cluster connects via Kerberos/LDAP
9
+ - `Vault#add_session`: guard `@sessions` with lazy init to prevent nil error when using cluster-based auth
10
+
3
11
  ## [1.4.18] - 2026-03-26
4
12
 
5
13
  ### Fixed
@@ -12,10 +12,11 @@ module Legion
12
12
 
13
13
  clusters[cluster_name][:token] = token
14
14
  clusters[cluster_name][:connected] = true
15
+ mark_vault_connected
15
16
 
16
17
  Legion::Logging.info "LDAP login success: user=#{username}, cluster=#{cluster_name}" if defined?(Legion::Logging)
17
18
  { token: token, lease_duration: auth.lease_duration,
18
- renewable: auth.renewable, policies: auth.policies }
19
+ renewable: auth.renewable?, policies: auth.policies }
19
20
  rescue StandardError => e
20
21
  Legion::Logging.warn "LDAP login failed: user=#{username}, cluster=#{cluster_name}: #{e.message}" if defined?(Legion::Logging)
21
22
  raise
@@ -33,7 +33,7 @@ module Legion
33
33
  @active_leases[name] = {
34
34
  lease_id: response.lease_id,
35
35
  lease_duration: response.lease_duration,
36
- renewable: response.renewable,
36
+ renewable: response.renewable?,
37
37
  expires_at: Time.now + (response.lease_duration || 0),
38
38
  fetched_at: Time.now
39
39
  }
@@ -45,7 +45,7 @@ module Legion
45
45
  end
46
46
 
47
47
  def fetch(name, key)
48
- data = @lease_cache[name]
48
+ data = @lease_cache[name.to_sym] || @lease_cache[name.to_s]
49
49
  return nil unless data
50
50
 
51
51
  data[key.to_sym] || data[key.to_s]
@@ -85,6 +85,7 @@ module Legion
85
85
  end
86
86
 
87
87
  def add_session(path:)
88
+ @sessions ||= []
88
89
  @sessions.push(path)
89
90
  end
90
91
 
@@ -60,11 +60,19 @@ module Legion
60
60
  results[name] = false
61
61
  log_vault_error(name, e)
62
62
  end
63
+
64
+ mark_vault_connected if results.any? { |_, v| v }
63
65
  results
64
66
  end
65
67
 
66
68
  private
67
69
 
70
+ def mark_vault_connected
71
+ return unless defined?(Legion::Settings)
72
+
73
+ Legion::Settings[:crypt][:vault][:connected] = true
74
+ end
75
+
68
76
  def resolve_cluster_name(name)
69
77
  return name.to_sym if name
70
78
 
@@ -39,7 +39,7 @@ module Legion
39
39
  {
40
40
  token: response.auth.client_token,
41
41
  lease_duration: response.auth.lease_duration,
42
- renewable: response.auth.renewable,
42
+ renewable: response.auth.renewable?,
43
43
  policies: response.auth.policies,
44
44
  metadata: response.auth.metadata
45
45
  }
@@ -16,7 +16,7 @@ module Legion
16
16
  {
17
17
  token: response.auth.client_token,
18
18
  lease_duration: response.auth.lease_duration,
19
- renewable: response.auth.renewable,
19
+ renewable: response.auth.renewable?,
20
20
  policies: response.auth.policies,
21
21
  metadata: response.auth.metadata
22
22
  }
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Legion
4
4
  module Crypt
5
- VERSION = '1.4.18'
5
+ VERSION = '1.4.19'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: legion-crypt
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.18
4
+ version: 1.4.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esity