Strong Routes
Strong Routes is a simple Rack middleware to reject requests to unknown routes before allocating connections or any resources.
Installation
Add this line to your application's Gemfile:
gem 'strong_routes'
And then execute:
$ bundle
Or install it yourself as:
$ gem install strong_routes
Usage
Rails Apps
In Rails apps, using Strong Routes is as simple as adding it to your Gemfile. The middleware is automatically added to the middleware stack. Any routes defined by the application are automatically allowed by default.
Rack Apps
In Rack apps, load the StrongRoutes::Allow
middleware into your middleware stack:
app.insert_before StrongRoutes::Allow, ResourceLoadingMiddleware
In (non-Rails) Rack apps, allowed routes are empty default. Allowed routes are specified using the allowed_routes
config option:
StrongRoutes.config.allowed_routes = [ '/', '/posts' ]
Routes can be specified as strings or regular expressions:
StrongRoutes.config.allowed_routes = [ /\A\//i, /\A\/posts/i ]
Response
Any routes that aren't allowed will return a 404 by default. In Rails apps, Strong Routes renders public/404.html
if it is present. If it is not, Strong Routes renders an empty response:
[ 404, {}, [] ]
The content that is returned can be specified using the content
config option:
StrongRoutes.config.content = File.read(Rails.root.join('public/404.html'))
StrongRoutes.config.content_type = "text/html"
Contributing
- Fork it ( http://github.com//strong_routes/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request