omniauth-idcard 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -41,15 +41,27 @@ module OmniAuth
41
41
  end
42
42
  end
43
43
 
44
+ def unescape(value)
45
+ value.gsub( /\\(?:([nevfbart\\])|0?x([0-9a-fA-F]{2})|u([0-9a-fA-F]{4}))/ ) {
46
+ if $3
47
+ ["#$3".hex ].pack('U*')
48
+ elsif $2
49
+ [$2].pack( "H2" )
50
+ else
51
+ UNESCAPES[$1]
52
+ end
53
+ }
54
+ end
55
+
44
56
  def parse_client_certificate(data)
45
57
  cert = OpenSSL::X509::Certificate.new(data)
46
- subject_dn = cert.subject.to_s.scan(/./mu) {|s| s[0].chr}
47
-
58
+ subject_dn = unescape(cert.subject.to_s).unpack("C*").pack("U*").scan(/./mu) {|s| s[0].chr }
59
+
48
60
  debug "Subject DN: #{subject_dn}"
49
-
50
- subject_dn.split('/').inject(Hash.new) do |memo, part|
61
+
62
+ subject_dn.mb_chars.split('/').inject(Hash.new) do |memo, part|
51
63
  item = part.split('=')
52
- memo[item.first] = item.last
64
+ memo[item.first.to_s] = item.last
53
65
  memo
54
66
  end
55
67
  end
@@ -1,5 +1,5 @@
1
1
  module Omniauth
2
2
  module Idcard
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-idcard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-14 00:00:00.000000000 Z
12
+ date: 2013-01-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: omniauth-oauth
16
- requirement: &70247366140780 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,7 +21,12 @@ dependencies:
21
21
  version: '1.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70247366140780
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.0'
25
30
  description: OmniAuth strategy for Estonian ID-Card
26
31
  email:
27
32
  - tarmo.talu@gmail.com
@@ -56,7 +61,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
56
61
  version: '0'
57
62
  requirements: []
58
63
  rubyforge_project: omniauth-idcard
59
- rubygems_version: 1.8.11
64
+ rubygems_version: 1.8.24
60
65
  signing_key:
61
66
  specification_version: 3
62
67
  summary: OmniAuth strategy for Estonian ID-Card