Geoffroy Gomet wrote:
> How can I protect static assets behind authentication.
> I'm familliar with protecting dynamic pages but how to protect static
> files?
> 
> An example would be : someone login to my application, upload a
> picture and authorize only some users to see this picture.
> How to avoid someone to access the picture, even if this pperson knows
> the correct url of the file.
> 
> The solution is probably to let rails handle static files, but how to
> force this behavior and how to handle differents file types (probably
> through sendfile).

In most production environments web resources (files under 
$RAILS_ROOT/public) are served to the client by the web server (Apache, 
Nginx, etc.). Your Rails application, and therefore your authentication, 
are not involved at all.

The easiest solution is to move the files you want to deliver outside of 
the public folder and serve them to the client from your Rails 
application using send_file:

http://railsapi.com/doc/rails-v2.3.5/classes/ActionController/Streaming.html#M001587

Take special note of the :x_sendfile option. This will basically hand 
the bulk of the file streaming back to Apache. With send_file you'll be 
able to control access to the protected files, by whatever means you 
wish. You would then be able to send the files just as you would 
normally send html to the client using Rails routing and controller 
actions.
-- 
Posted via http://www.ruby-forum.com/.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to