rack-ip-whitelist 0.0.1

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.
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in rack-ip-whitelist.gemspec
4
+ gemspec
@@ -0,0 +1,18 @@
1
+ h1. IP Whitelist Middleware
2
+
3
+ h2. About
4
+
5
+ Rack Middleware for websites that need to contain access to a group of ip addresses (a whitelist).
6
+ Outside these addresses, vistors are shown 403 Forbidden page.
7
+
8
+ h3. Usage
9
+
10
+ h4. Rails 3
11
+
12
+ in Gemfile
13
+
14
+ @gem 'rack-ip-whitelist'@
15
+
16
+ in config/application.rb
17
+
18
+ @config.middleware.use Rack::IpWhiteList, %w(55.44.22.11 55.44.11.22) # array of whitelisted addresses%@
@@ -0,0 +1 @@
1
+ require 'bundler/gem_tasks'
@@ -0,0 +1,22 @@
1
+ require "rack-ip-whitelist/version"
2
+
3
+ module Rack
4
+ class IpWhitelist
5
+ def initialize(app, addresses)
6
+ @app = app
7
+ @ip_addresses = addresses
8
+ end
9
+
10
+ def call(env)
11
+ if white_listed?(env)
12
+ @app.call(env)
13
+ else
14
+ [ 200, {"Content-Type" => "text/html"}, "<p>You are not authorized to view this site</p>" ]
15
+ end
16
+ end
17
+
18
+ def white_listed?(env)
19
+ Rails.env.production? ? @ip_addresses.include?(env["REMOTE_IP"]) : true
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,7 @@
1
+ module Rack
2
+ module Ip
3
+ module Whitelist
4
+ VERSION = "0.0.1"
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "rack-ip-whitelist/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "rack-ip-whitelist"
7
+ s.version = Rack::Ip::Whitelist::VERSION
8
+ s.authors = ["Jake Varghese"]
9
+ s.email = ["jake3030@gmail.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{Ip Whitelist middleware}
12
+ s.description = %q{Rack middleware to quickly add ip whitelisting to your app}
13
+
14
+ s.rubyforge_project = "rack-ip-whitelist"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+ end
metadata ADDED
@@ -0,0 +1,74 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rack-ip-whitelist
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Jake Varghese
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-07-08 00:00:00 -05:00
19
+ default_executable:
20
+ dependencies: []
21
+
22
+ description: Rack middleware to quickly add ip whitelisting to your app
23
+ email:
24
+ - jake3030@gmail.com
25
+ executables: []
26
+
27
+ extensions: []
28
+
29
+ extra_rdoc_files: []
30
+
31
+ files:
32
+ - .gitignore
33
+ - Gemfile
34
+ - README.textile
35
+ - Rakefile
36
+ - lib/rack-ip-whitelist.rb
37
+ - lib/rack-ip-whitelist/version.rb
38
+ - rack-ip-whitelist.gemspec
39
+ has_rdoc: true
40
+ homepage: ""
41
+ licenses: []
42
+
43
+ post_install_message:
44
+ rdoc_options: []
45
+
46
+ require_paths:
47
+ - lib
48
+ required_ruby_version: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ hash: 3
54
+ segments:
55
+ - 0
56
+ version: "0"
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ hash: 3
63
+ segments:
64
+ - 0
65
+ version: "0"
66
+ requirements: []
67
+
68
+ rubyforge_project: rack-ip-whitelist
69
+ rubygems_version: 1.3.7
70
+ signing_key:
71
+ specification_version: 3
72
+ summary: Ip Whitelist middleware
73
+ test_files: []
74
+