2010-03-30 9 views
1

Comme Rails est entièrement compatible avec Rack, je me demandais comment je pourrais configurer un fichier rack pour qu'une application Rails ne soit qu'un morceau de middleware, puis qu'une requête puisse toucher une autre application plus bas dans la pile middleware . Ce que je veux vraiment, c'est utiliser une application Rails pour gérer l'authentification et l'autorisation des petites applications en rack plus tard dans la pile middleware, est-ce possible avec Rails 3?Rails 3 en tant que middleware Rack

Répondre

1

En rack, il existe une distinction entre le middleware et une application. Vous pouvez avoir une pile complète de middleware, mais il n'y a qu'une seule application à la fin. Donc vous ne pouvez pas faire exactement ce que vous demandez. Toutefois, vous pouvez partager un intergiciel entre une application rails et d'autres applications de rack. Un exemple de bon middleware pour l'authentification est Warden.

1

Sous Rails 3, vous avez la possibilité de router vers des applications Rack à partir de votre application Rails.

http://guides.rubyonrails.org/routing.html#routing-to-rack-applications

Vous pouvez l'écrire tel que votre authentification/autorisation rails app vient d'être défini des itinéraires pour vos applications en rack.

match "/app1" => RackApp1 
match "/app2" => RackApp2