* How to use Rack::Auth::Digest::MD5 @ 2009-10-16 18:33 Iñaki Baz Castillo 2009-10-18 20:32 ` Iñaki Baz Castillo 0 siblings, 1 reply; 10+ messages in thread From: Iñaki Baz Castillo @ 2009-10-16 18:33 UTC (permalink / raw) To: rack-devel Hi, could I get an example of Rack::Auth::Digest::MD5 usage? By reading the doc I get confussed: http://rack.rubyforge.org/doc/Rack/Auth/Digest/MD5.html The only I've found until now is a similar question with no response: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/313893 -- Iñaki Baz Castillo <ibc@aliax.net> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: How to use Rack::Auth::Digest::MD5 2009-10-16 18:33 How to use Rack::Auth::Digest::MD5 Iñaki Baz Castillo @ 2009-10-18 20:32 ` Iñaki Baz Castillo 2009-10-19 11:33 ` Magnus Holm 0 siblings, 1 reply; 10+ messages in thread From: Iñaki Baz Castillo @ 2009-10-18 20:32 UTC (permalink / raw) To: rack-devel El Viernes, 16 de Octubre de 2009, Iñaki Baz Castillo escribió: > Hi, could I get an example of Rack::Auth::Digest::MD5 usage? By reading the > doc I get confussed: > > http://rack.rubyforge.org/doc/Rack/Auth/Digest/MD5.html > > The only I've found until now is a similar question with no response: > > http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/313893 Any help please? I don't get it working and I don't know exactly what to try since there is no documentation or examples. Thanks. -- Iñaki Baz Castillo <ibc@aliax.net> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: How to use Rack::Auth::Digest::MD5 2009-10-18 20:32 ` Iñaki Baz Castillo @ 2009-10-19 11:33 ` Magnus Holm 2009-10-19 11:54 ` Iñaki Baz Castillo 0 siblings, 1 reply; 10+ messages in thread From: Magnus Holm @ 2009-10-19 11:33 UTC (permalink / raw) To: rack-devel What about something like this? app = lambda do |env| [200, { 'Content-Type' => "text/html" }, ['Logged in!']] end app = Rack::Digest::MD5.new(app) do |username, password| username == "foo" && password == "bar" end run app //Magnus Holm On Sun, Oct 18, 2009 at 22:32, Iñaki Baz Castillo <ibc@aliax.net> wrote: > > El Viernes, 16 de Octubre de 2009, Iñaki Baz Castillo escribió: >> Hi, could I get an example of Rack::Auth::Digest::MD5 usage? By reading the >> doc I get confussed: >> >> http://rack.rubyforge.org/doc/Rack/Auth/Digest/MD5.html >> >> The only I've found until now is a similar question with no response: >> >> http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/313893 > > > Any help please? I don't get it working and I don't know exactly what to try > since there is no documentation or examples. > > Thanks. > > -- > Iñaki Baz Castillo <ibc@aliax.net> > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: How to use Rack::Auth::Digest::MD5 2009-10-19 11:33 ` Magnus Holm @ 2009-10-19 11:54 ` Iñaki Baz Castillo 2009-10-19 12:07 ` Iñaki Baz Castillo 0 siblings, 1 reply; 10+ messages in thread From: Iñaki Baz Castillo @ 2009-10-19 11:54 UTC (permalink / raw) To: rack-devel El Lunes, 19 de Octubre de 2009, Magnus Holm escribió: > What about something like this? > > app = lambda do |env| > [200, { 'Content-Type' => "text/html" }, ['Logged in!']] > end > > app = Rack::Digest::MD5.new(app) do |username, password| > username == "foo" && password == "bar" > end > > run app Thanks, but what about if I just want to ask for authentication depending on the URL? For example: I require authentication if the URL is: http://domain.org/service1/users/alice@domain.org/index.xml But I don't require authentication if the URL is: http://domain.org/service1/global/index.xml Also, there are cases in which I require Digest authentication if method is PUT but not for GET. Is it possible? Thanks a lot. -- Iñaki Baz Castillo <ibc@aliax.net> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: How to use Rack::Auth::Digest::MD5 2009-10-19 11:54 ` Iñaki Baz Castillo @ 2009-10-19 12:07 ` Iñaki Baz Castillo 2009-12-18 14:52 ` Genta IHA 0 siblings, 1 reply; 10+ messages in thread From: Iñaki Baz Castillo @ 2009-10-19 12:07 UTC (permalink / raw) To: rack-devel El Lunes, 19 de Octubre de 2009, Iñaki Baz Castillo escribió: > El Lunes, 19 de Octubre de 2009, Magnus Holm escribió: > > What about something like this? > > > > app = lambda do |env| > > [200, { 'Content-Type' => "text/html" }, ['Logged in!']] > > end > > > > app = Rack::Digest::MD5.new(app) do |username, password| > > username == "foo" && password == "bar" > > end > > > > run app > > Thanks, but what about if I just want to ask for authentication depending > on the URL? > For example: > > I require authentication if the URL is: > http://domain.org/service1/users/alice@domain.org/index.xml > > But I don't require authentication if the URL is: > http://domain.org/service1/global/index.xml > > Also, there are cases in which I require Digest authentication if method is > PUT but not for GET. Also, I don't know which user, password and *realm* I must use to generate the 401 until I inspect the request. This is, in my previous example: http://domain.org/service1/users/alice@domain.org/index.xml The 401 should contain a "WWW-Authenticate" header with fields: - realm = domain.org - username = alice An the password (hassed ha1) would be retrieved from a DB. Is it possible? -- Iñaki Baz Castillo <ibc@aliax.net> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: How to use Rack::Auth::Digest::MD5 2009-10-19 12:07 ` Iñaki Baz Castillo @ 2009-12-18 14:52 ` Genta IHA 2009-12-18 18:09 ` Iñaki Baz Castillo 2009-12-18 18:41 ` Iñaki Baz Castillo 0 siblings, 2 replies; 10+ messages in thread From: Genta IHA @ 2009-12-18 14:52 UTC (permalink / raw) To: Iñaki Baz Castillo; +Cc: rack-devel Hello, > Hi, could I get an example of Rack::Auth::Digest::MD5 usage? By reading the > doc I get confussed: : (snip) > Thanks, but what about if I just want to ask for authentication depending > on the URL? Please try this example: ---- class DigestAuthApp USERS = { 'office' => { 'alice' => 'opensesame', }, 'home' => { 'bob' => 'hello', }, } def call(env) req = Rack::Request.new(env) return view_global(env) if %r!^/service1/global/! =~ req.fullpath _, user, realm, path = *%r!^/service1/users/(\w+)@([^/]+)/ (.*)!.match(req.fullpath) # authentication needed for users area env = callcc do |cont| auth = Rack::Auth::Digest::MD5.new(cont, realm) {|u| USERS[realm] [user] } auth.opaque = $$.to_s # or your favorite opaque return auth.call(env) # => returns 401 if not authenticated end # authenticated req = Rack::Request.new(env) auth_user = req.env['REMOTE_USER'] body = '' [['user', auth_user], ['realm', realm], ['path', path]].each do | k, v| body += k + ': ' + v + "\n" end [200, {"Content-Type" => "text/plain"}, body] end def view_global(env) [200, {"Content-Type" => "text/plain"}, 'Welcome to global area. Enjoy!'] end end ---- for /service1/users/.*@office/something: alice is permitted. bob is not. for /service1/users/.*@home/something: bob is permitted. alice is not. for /service1/global/something: Everyone is permitted. -- Genta IHA iha@inetcore.com ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: How to use Rack::Auth::Digest::MD5 2009-12-18 14:52 ` Genta IHA @ 2009-12-18 18:09 ` Iñaki Baz Castillo 2009-12-18 18:41 ` Iñaki Baz Castillo 1 sibling, 0 replies; 10+ messages in thread From: Iñaki Baz Castillo @ 2009-12-18 18:09 UTC (permalink / raw) To: rack-devel El Viernes, 18 de Diciembre de 2009, Genta IHA escribió: > Hello, > > > Hi, could I get an example of Rack::Auth::Digest::MD5 usage? By reading > > the > > > > doc I get confussed: > : (snip) > > > > Thanks, but what about if I just want to ask for authentication depending > > on the URL? > > Please try this example: > > ---- > class DigestAuthApp > USERS = { > 'office' => { > 'alice' => 'opensesame', > }, > 'home' => { > 'bob' => 'hello', > }, > } > > def call(env) > req = Rack::Request.new(env) > return view_global(env) if %r!^/service1/global/! =~ req.fullpath > _, user, realm, path = *%r!^/service1/users/(\w+)@([^/]+)/ > (.*)!.match(req.fullpath) > > # authentication needed for users area > env = callcc do |cont| > auth = Rack::Auth::Digest::MD5.new(cont, realm) {|u| USERS[realm] > [user] } > auth.opaque = $$.to_s # or your favorite opaque > return auth.call(env) # => returns 401 if not authenticated > end > # authenticated > req = Rack::Request.new(env) > auth_user = req.env['REMOTE_USER'] > > body = '' > [['user', auth_user], ['realm', realm], ['path', path]].each do | > k, v| > body += k + ': ' + v + "\n" > end > [200, {"Content-Type" => "text/plain"}, body] > end > > def view_global(env) > [200, {"Content-Type" => "text/plain"}, 'Welcome to global area. > Enjoy!'] > end > end > ---- > > for /service1/users/.*@office/something: > alice is permitted. bob is not. > > for /service1/users/.*@home/something: > bob is permitted. alice is not. > > for /service1/global/something: > Everyone is permitted. Great! thanksa lot, I'll try it. -- Iñaki Baz Castillo <ibc@aliax.net> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: How to use Rack::Auth::Digest::MD5 2009-12-18 14:52 ` Genta IHA 2009-12-18 18:09 ` Iñaki Baz Castillo @ 2009-12-18 18:41 ` Iñaki Baz Castillo 2009-12-18 19:19 ` Iñaki Baz Castillo 1 sibling, 1 reply; 10+ messages in thread From: Iñaki Baz Castillo @ 2009-12-18 18:41 UTC (permalink / raw) To: rack-devel El Viernes, 18 de Diciembre de 2009, Genta IHA escribió: > # authentication needed for users area > env = callcc do |cont| > auth = Rack::Auth::Digest::MD5.new(cont, realm) {|u| USERS[realm] > [user] } I get an error: what is "callcc"? Thanks a lot. -- Iñaki Baz Castillo <ibc@aliax.net> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: How to use Rack::Auth::Digest::MD5 2009-12-18 18:41 ` Iñaki Baz Castillo @ 2009-12-18 19:19 ` Iñaki Baz Castillo 2009-12-18 19:21 ` Iñaki Baz Castillo 0 siblings, 1 reply; 10+ messages in thread From: Iñaki Baz Castillo @ 2009-12-18 19:19 UTC (permalink / raw) To: rack-devel El Viernes, 18 de Diciembre de 2009, Iñaki Baz Castillo escribió: > El Viernes, 18 de Diciembre de 2009, Genta IHA escribió: > > # authentication needed for users area > > env = callcc do |cont| > > auth = Rack::Auth::Digest::MD5.new(cont, realm) {|u| USERS[realm] > > [user] } > > I get an error: what is "callcc"? Ops, 'callcc' exists in Ruby1.8, but not in 1.9 ! -- Iñaki Baz Castillo <ibc@aliax.net> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: How to use Rack::Auth::Digest::MD5 2009-12-18 19:19 ` Iñaki Baz Castillo @ 2009-12-18 19:21 ` Iñaki Baz Castillo 0 siblings, 0 replies; 10+ messages in thread From: Iñaki Baz Castillo @ 2009-12-18 19:21 UTC (permalink / raw) To: rack-devel El Viernes, 18 de Diciembre de 2009, Iñaki Baz Castillo escribió: > El Viernes, 18 de Diciembre de 2009, Iñaki Baz Castillo escribió: > > El Viernes, 18 de Diciembre de 2009, Genta IHA escribió: > > > # authentication needed for users area > > > env = callcc do |cont| > > > auth = Rack::Auth::Digest::MD5.new(cont, realm) {|u| USERS[realm] > > > [user] } > > > > I get an error: what is "callcc"? > > Ops, 'callcc' exists in Ruby1.8, but not in 1.9 ! Sorry, it does exist, but "continuation" library must be loaded (while in 1.8 it seems to be loaded always). -- Iñaki Baz Castillo <ibc@aliax.net> ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2009-12-18 19:21 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2009-10-16 18:33 How to use Rack::Auth::Digest::MD5 Iñaki Baz Castillo 2009-10-18 20:32 ` Iñaki Baz Castillo 2009-10-19 11:33 ` Magnus Holm 2009-10-19 11:54 ` Iñaki Baz Castillo 2009-10-19 12:07 ` Iñaki Baz Castillo 2009-12-18 14:52 ` Genta IHA 2009-12-18 18:09 ` Iñaki Baz Castillo 2009-12-18 18:41 ` Iñaki Baz Castillo 2009-12-18 19:19 ` Iñaki Baz Castillo 2009-12-18 19:21 ` Iñaki Baz Castillo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).