immunio 1.0.14 → 1.0.15

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: 4f381a24b73b7115c320e46e538564da3d4001f2
4
- data.tar.gz: 12b66439e36175bddd908eca2f94ec5269c6ccb4
3
+ metadata.gz: df076162b48fc75f6e04a46db9118579b1107e53
4
+ data.tar.gz: 64d31948b83cae4e3c3c847224a24c9520a51b27
5
5
  SHA512:
6
- metadata.gz: 75b54a277712434f4cfc18dd8f1a7e2bbe0c061dd7f4053f9e98048a9608107c1dc22e2c4b92334191970b68560ac83632661aae561efc332a28eb8c0c0830a1
7
- data.tar.gz: d37adcced6010eb26a12990217d59d93f8520122b583d0489d0a7df85c795f2fea3102d02767d12285eaed411149fce6903e0c4bdb999f4d27141aae5bb211c0
6
+ metadata.gz: 4264cc06b7cce23856abda0680db53a5cfe7a2fcb39e175e0e58884a869ed0e0253f16aff6be6cdf3330c45671c25af03649f2a6fcb2bc189a328347b7b7701f
7
+ data.tar.gz: 343a25d95f60caa65993f3397d08f06a7e43a67b0994367b9355f9b62a0b7025e46a57c3c33921f3aefafa5a587ff91939bb3eafb0f9d743454e0b950299a101
data/lib/immunio/agent.rb CHANGED
@@ -4,8 +4,6 @@ require "yaml"
4
4
  require_relative "channel"
5
5
  require_relative "processor"
6
6
 
7
-
8
-
9
7
  module Immunio
10
8
  @agent = nil
11
9
 
@@ -156,16 +154,14 @@ module Immunio
156
154
  locations << File.join("config", CONFIG_FILENAME)
157
155
 
158
156
  locations.each do |location|
159
- Immunio.logger.debug { "Trying to find config file at #{location}" }
160
157
  begin
161
- realpath = File.realpath(location) # Raises exception if file doesn't exist
162
- Immunio.logger.debug { "Found config file at #{realpath}" }
163
- options = YAML.load_file(realpath).symbolize_keys
164
- config.update options
158
+ config.update load_config_at_location(location)
165
159
  Immunio.logger.debug { "Configuration after loading from file: #{config}" }
166
160
  break
167
161
  rescue SystemCallError => e
168
- Immunio.logger.debug { "Failed to load config: #{e}" }
162
+ Immunio.logger.error { "Failed to open config: #{e}" }
163
+ rescue => e
164
+ Immunio.logger.error { "Bad immunio configuration file: #{e.inspect}" }
169
165
  end
170
166
  end
171
167
 
@@ -197,7 +193,18 @@ module Immunio
197
193
  config.plugins_active.subtract(config.plugins_disabled)
198
194
  config.plugins_active.merge(config.plugins_enabled)
199
195
  Immunio.logger.info { "Active plugins: #{config.plugins_active.to_a}" }
196
+ end
200
197
 
198
+ # Loads the configuration file.
199
+ # Raises:
200
+ # - Errno::ENOENT if it doesn't exist;
201
+ # - NoMethodError if the config is invalid, `YAML.load_file` will return
202
+ # a `String`, and `symbolize_keys` will be called on it.
203
+ def load_config_at_location(location)
204
+ Immunio.logger.debug { "Trying to find config file at #{location}" }
205
+ realpath = File.realpath(location) # Raises exception if file doesn't exist
206
+ Immunio.logger.debug { "Found config file at #{realpath}" }
207
+ YAML.load_file(realpath).symbolize_keys
201
208
  end
202
209
 
203
210
  def plugin_enabled?(plugin)
@@ -506,6 +506,27 @@ module Immunio
506
506
  content
507
507
  end
508
508
  end
509
+
510
+ # Hook for the `ActiveSupport::Hash#to_query`.
511
+ # Use case: building a url within a decorator that renders a partial with an interpolation.
512
+ module ActiveSupportHooks
513
+ extend ActiveSupport::Concern
514
+
515
+ included do
516
+ Immunio::Utils.alias_method_chain self, :to_query, :immunio
517
+ end
518
+
519
+ def to_query_with_immunio(namespace = nil)
520
+ escaped_string = to_query_without_immunio(namespace)
521
+ Request.time "plugin", "#{Module.nesting[0]}::#{__method__}" do
522
+ # Our markers got escaped, so un-unescaped them back.
523
+ escaped_string.gsub!(
524
+ Immunio::Template::ENCODED_IMMUNIO_TOKENS_RE,
525
+ "{immunio-\\1:\\2:\\3}\\4{/immunio-\\1:\\2:\\3}")
526
+ end
527
+ escaped_string
528
+ end
529
+ end
509
530
  end
510
531
 
511
532
  # Add XSS hooks if enabled
@@ -518,6 +539,8 @@ if Immunio::agent.plugin_enabled?("xss") then
518
539
  if defined? Haml::Compiler
519
540
  Haml::Compiler.send :include, Immunio::HamlHooks
520
541
  end
542
+
543
+ Hash.send :include, Immunio::ActiveSupportHooks
521
544
  end
522
545
 
523
546
  # Hook into rendering process of Rails.
@@ -1,5 +1,5 @@
1
1
  module Immunio
2
2
  AGENT_TYPE = "agent-ruby"
3
- VERSION = "1.0.14"
3
+ VERSION = "1.0.15"
4
4
  VM_VERSION = "2.2.0"
5
5
  end
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: immunio
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.14
4
+ version: 1.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Immunio
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-24 00:00:00.000000000 Z
11
+ date: 2016-04-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: thor
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: 0.14.6
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.14.6
41
41
  - !ruby/object:Gem::Dependency
@@ -56,56 +56,56 @@ dependencies:
56
56
  name: msgpack
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0.5'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.5'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: faraday
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0.8'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0.8'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: faraday_middleware
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ~>
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0.9'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ~>
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0.9'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: binding_of_caller
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ~>
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0.7'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ~>
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0.7'
111
111
  description: |
@@ -124,6 +124,9 @@ extensions:
124
124
  - ext/immunio/Rakefile
125
125
  extra_rdoc_files: []
126
126
  files:
127
+ - LICENSE
128
+ - README.md
129
+ - bin/immunio
127
130
  - ext/immunio/Rakefile
128
131
  - lib/immunio.rb
129
132
  - lib/immunio/agent.rb
@@ -420,10 +423,7 @@ files:
420
423
  - lua-hooks/ext/sha1/sha1.c
421
424
  - lua-hooks/ext/sha2/luasha256.c
422
425
  - lua-hooks/ext/sha2/sha256.c
423
- - README.md
424
- - LICENSE
425
426
  - lua-hooks/lib/boot.lua
426
- - bin/immunio
427
427
  homepage: http://immun.io/
428
428
  licenses:
429
429
  - Immunio
@@ -435,17 +435,17 @@ require_paths:
435
435
  - lib
436
436
  required_ruby_version: !ruby/object:Gem::Requirement
437
437
  requirements:
438
- - - '>='
438
+ - - ">="
439
439
  - !ruby/object:Gem::Version
440
440
  version: 1.9.3
441
441
  required_rubygems_version: !ruby/object:Gem::Requirement
442
442
  requirements:
443
- - - '>='
443
+ - - ">="
444
444
  - !ruby/object:Gem::Version
445
445
  version: '0'
446
446
  requirements: []
447
447
  rubyforge_project:
448
- rubygems_version: 2.0.14
448
+ rubygems_version: 2.4.5
449
449
  signing_key:
450
450
  specification_version: 4
451
451
  summary: Immunio Ruby agent