ehsso 0.7.1 → 0.8.0

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: 78474617434e6d24addeef20df5cea2f193f858c233d80c06c9a5dcf43891536
4
- data.tar.gz: 5b5a20eb87f5059234028faed9508f86fbadf4fb061e1ddf048b110041959b5e
3
+ metadata.gz: 208742122ef1e438a89f71a9b42fdade0b41156ef23ece58d63d74efd92abd4c
4
+ data.tar.gz: 1384cee640caab6534e660cb502ffd7ae6a35a305d9f5d45bf0fe14efb1c9a5e
5
5
  SHA512:
6
- metadata.gz: 648fb5f32db29fe8f7694adc49b1ddc01307956eeabed1b7a86396b49828b5a82c4f161df027aea0265e2cf88199c8645e1d9f6cba6b2549e011ff1fa67944a3
7
- data.tar.gz: df834d5550a94636da051dfce6ef88f89bf1abf4800c6803238358f7ff53fa33353f71a3acf59af8852c7a3ac4733a4556887d4ab8b1f312c8942aa292f8bd39
6
+ metadata.gz: e194bdceb811f29a4c11582fee77d69b855480d5e0a82efeef4fea45dd0a04b819ebf7fa170d39e82509b4e4e4f35674e2a1232e508364dad9f7fb483ae0fce7
7
+ data.tar.gz: f37a33ec3e472fd979df10c2da3e71165df52027301f1ee4a05025d3119cbf954e60b51391fb44c0ef5695709ea18658364ccbc0b155bd5774f17b1e01097466
@@ -25,7 +25,7 @@ jobs:
25
25
 
26
26
  name: Ruby ${{ matrix.ruby }}
27
27
  steps:
28
- - uses: actions/checkout@v5
28
+ - uses: actions/checkout@v6
29
29
 
30
30
  - name: Set up Ruby
31
31
  uses: ruby/setup-ruby@v1
@@ -14,7 +14,7 @@ jobs:
14
14
 
15
15
  steps:
16
16
  - name: Checkout current code
17
- uses: actions/checkout@v5
17
+ uses: actions/checkout@v6
18
18
 
19
19
  - name: Set up Ruby
20
20
  uses: ruby/setup-ruby@v1
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog of ehsso
2
2
 
3
+ ## 0.8.0 / 2026-06-10
4
+
5
+ * Strip whitespace from HTTP_NIBR* header values (reference, first name, last name, email)
6
+ * Reject whitespace-only reference header as invalid
7
+ * Use end_with? for role method checking in method_missing and respond_to_missing?
8
+ * Fix typo in error message ("porperties" -> "properties")
9
+
3
10
  ## 0.7.1 / 2025-11-09
4
11
 
5
12
  * Enable Trusted Publishing
data/ehsso.gemspec CHANGED
@@ -22,7 +22,6 @@ Gem::Specification.new do |spec|
22
22
 
23
23
  spec.required_ruby_version = ">= 3.1"
24
24
 
25
- spec.add_development_dependency "bundler", "~> 2.3"
26
25
  spec.add_development_dependency "rake", "~> 13.0"
27
26
  spec.add_development_dependency "rspec", "~> 3.12"
28
27
  spec.add_development_dependency "rails", ">= 6.1"
@@ -31,5 +30,5 @@ Gem::Specification.new do |spec|
31
30
 
32
31
  spec.add_runtime_dependency("typhoeus", "~> 1.5")
33
32
  spec.add_runtime_dependency("logger", "~> 1.7")
34
- spec.add_runtime_dependency("bigdecimal", "~> 3.2")
33
+ spec.add_runtime_dependency("bigdecimal", "~> 4.0")
35
34
  end
data/lib/ehsso/person.rb CHANGED
@@ -32,13 +32,11 @@ module Ehsso
32
32
 
33
33
  # you can use methods like guest?, user?, operator?, administrator? etc.
34
34
  def method_missing(method)
35
- raise "Method [#{method}] not defined or allowed" unless method[-1] == "?"
35
+ raise "Method [#{method}] not defined or allowed" unless method.end_with?("?")
36
36
  @roles.include?(method[0..-2].upcase)
37
37
  end
38
38
 
39
- def respond_to_missing?(method, include_private = false)
40
- true if method[-1] == "?"
41
- end
39
+ def respond_to_missing?(method, include_private = false) = method.end_with?("?")
42
40
 
43
41
  def full_name
44
42
  return nil if last_name.nil? && first_name.nil?
@@ -49,19 +47,23 @@ module Ehsso
49
47
  person = Ehsso::Person.new
50
48
 
51
49
  # reference (mandatory)
52
- if header["HTTP_NIBR521"].nil? || header["HTTP_NIBR521"].size == 0
53
- person.last_error_message = "Unable to extract HTTP_NIBR* porperties from request header"
50
+ # to_s save in case of nil,
51
+ # strip removes spaces around the string
52
+ reference_value = header["HTTP_NIBR521"].to_s.strip
53
+ if reference_value.empty?
54
+ person.last_error_message = "Unable to extract HTTP_NIBR* properties from request header"
54
55
  return person
55
56
  end
56
57
 
57
- person.reference = header["HTTP_NIBR521"].downcase
58
+ person.reference = reference_value.downcase
58
59
 
59
60
  [
60
61
  [:first_name=, "HTTP_NIBRFIRST"],
61
62
  [:last_name=, "HTTP_NIBRLAST"],
62
63
  [:email=, "HTTP_NIBREMAIL"]
63
64
  ].each do |method, key|
64
- person.send(method, header[key]) if header[key] && header[key].strip.size > 0
65
+ value = header[key].to_s.strip
66
+ person.send(method, value) unless value.empty?
65
67
  end
66
68
 
67
69
  person
data/lib/ehsso/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ehsso
2
- VERSION = "0.7.1"
2
+ VERSION = "0.8.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ehsso
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Steiner
@@ -9,20 +9,6 @@ bindir: exe
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
- - !ruby/object:Gem::Dependency
13
- name: bundler
14
- requirement: !ruby/object:Gem::Requirement
15
- requirements:
16
- - - "~>"
17
- - !ruby/object:Gem::Version
18
- version: '2.3'
19
- type: :development
20
- prerelease: false
21
- version_requirements: !ruby/object:Gem::Requirement
22
- requirements:
23
- - - "~>"
24
- - !ruby/object:Gem::Version
25
- version: '2.3'
26
12
  - !ruby/object:Gem::Dependency
27
13
  name: rake
28
14
  requirement: !ruby/object:Gem::Requirement
@@ -127,14 +113,14 @@ dependencies:
127
113
  requirements:
128
114
  - - "~>"
129
115
  - !ruby/object:Gem::Version
130
- version: '3.2'
116
+ version: '4.0'
131
117
  type: :runtime
132
118
  prerelease: false
133
119
  version_requirements: !ruby/object:Gem::Requirement
134
120
  requirements:
135
121
  - - "~>"
136
122
  - !ruby/object:Gem::Version
137
- version: '3.2'
123
+ version: '4.0'
138
124
  description: EH Single Sign On
139
125
  email:
140
126
  - thomas.steiner@ikey.ch