🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.ruby
6 messages
6 total messages Started by Zbyszek Malec Tue, 02 Jun 2009 18:07
Opera + respond_to + ROR
#1261
Author: Zbyszek Malec
Date: Tue, 02 Jun 2009 18:07
41 lines
1936 bytes
Cześć
Opera 9.63
ROR 2.2.2
JRuby 1.1.4
RESTFulAuthentication 

w RESTFulAuthentication jest metoda:

    def access_denied
      respond_to do |format|
        format.html do
          store_location
          redirect_to new_<%= controller_singular_name %>_path
        end
        format.any do
          request_http_basic_authentication 'Web Password'
        end
      end
    end

czyli jak przeglądarka wysłała, że reaguje na html, to powinno nastąpić
przekierowanie, w przeciwnym przypadku, powinno odbyć się HTTP Basic Auth.
Opera wysyła taki HTTP_ACCEPT:

application/xhtml+voice+xml;version=1.2,
application/x-xhtml+voice+xml;version=1.2, text/html,
application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg,
image/gif, image/x-xbitmap, */*;q=0.1

czyli text/html jest obecne jako pierwsze, natomiast */* jako ostatnie, tak
więc powinienem zostać przekierowany na stronę z formularzem do logowania
się. Niestety, cały czas dostaję okienko Basic Auth.
Próbowałem yahować cos na ten temat, jednak znalazłem jedynie wątki
dotyczące IE i jego */*.

Ktoś się może zetknął z takim problemem i mógłby naprowadzić na
rozwiązanie?

-- 
Zbyszek Malec
gg 2756100
Re: Opera + respond_to + ROR
#1262
Author: Jarosław Zabiełło
Date: Tue, 02 Jun 2009 18:57
48 lines
2712 bytes
Dnia 02-06-2009 o 19:07:55 Zbyszek Malec <zbyszekto@tlen.pl> napisał(a):

> ROR 2.2.2
> JRuby 1.1.4
> RESTFulAuthentication
>
> w RESTFulAuthentication jest metoda:
>
>     def access_denied
>       respond_to do |format|
>         format.html do
>           store_location
>           redirect_to new_<%= controller_singular_name %>_path
>         end
>         format.any do
>           request_http_basic_authentication 'Web Password'
>         end
>       end
>     end
>
> czyli jak przeglądarka wysłała, że reaguje na html, to powinno nastąpić
> przekierowanie, w przeciwnym przypadku, powinno odbyć się HTTP Basic  
> Auth.
> Opera wysyła taki HTTP_ACCEPT:
>
> application/xhtml+voice+xml;version=1.2,
> application/x-xhtml+voice+xml;version=1.2, text/html,
> application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg,
> image/gif, image/x-xbitmap, */*;q=0.1
>
> czyli text/html jest obecne jako pierwsze, 

Niekoniecznie. Zobacz co się kryje pod zmienną format. Sprawdź czy zadziała ci dla format.xml. Założe się, że to RoR rozpoznaje jako XML, a nie HTML. W RoR 2.2 w pliku ...gems/actionpack-2.2.2/lib/action_controller/mime_types.rb masz wszystkie deficje MIME jakie są rozpoznawane przez ActionPack. I tam nie ma żadnego application/xhtml+voice+xml.

Mime::Type.register "*/*", :all
..
Mime::Type.register "text/html", :html, %w( application/xhtml+xml ), %w( xhtml )
...
Mime::Type.register "application/xml", :xml, %w( text/xml application/x-xml )

Jeśli tu jest problem to rozwiązana są dwa. Albo obsługujesz to przez format.xml zamiast format.html albo (lepiej) dodaj do Mime::Type.register "operowy" MIME.

Sprawa jest w sumie śliska, bo XHTML to aplikacja XML tak naprawdę. Czyli poprawne jest parsowanie XHTML jako HTML jak i jako XML.


-- 
Jarosław Zabiełło
http://blog.zabiello.com
Re: Opera + respond_to + ROR
#1265
Author: Jarosław Zabiełło
Date: Tue, 02 Jun 2009 19:09
50 lines
2815 bytes
Dnia 02-06-2009 o 19:07:55 Zbyszek Malec <zbyszekto@tlen.pl> napisał(a):
 
ROR 2.2.2
JRuby 1.1.4
RESTFulAuthentication
 
w RESTFulAuthentication jest metoda:
 
    def access_denied
      respond_to do |format|
        format.html do
          store_location
          redirect_to new_<%= controller_singular_name %>_path
        end
        format.any do
          request_http_basic_authentication 'Web Password'
        end
      end
    end
 
czyli jak przeglądarka wysłała, że reaguje na html, to powinno nastąpić
przekierowanie, w przeciwnym przypadku, powinno odbyć się HTTP Basic Auth.
Opera wysyła taki HTTP_ACCEPT:
 
application/xhtml+voice+xml;version=1.2,
application/x-xhtml+voice+xml;version=1.2, text/html,
application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg,
image/gif, image/x-xbitmap, */*;q=0.1
 
czyli text/html jest obecne jako pierwsze,
 
Niekoniecznie. Zobacz co się kryje pod zmienną format. Sprawdź czy zadziała ci dla format.xml. Założe się, że to RoR rozpoznaje jako XML, a nie HTML. W RoR 2.2 w pliku ...gems/actionpack-2.2.2/lib/action_controller/mime_types.rb masz wszystkie deficje MIME jakie są rozpoznawane przez ActionPack. I tam nie ma żadnego application/xhtml+voice+xml.
 
Mime::Type.register "*/*", :all
..
Mime::Type.register "text/html", :html, %w( application/xhtml+xml ), %w( xhtml )
...
Mime::Type.register "application/xml", :xml, %w( text/xml application/x-xml )
 
Jeśli tu jest problem to rozwiązana są dwa. Albo obsługujesz to przez format.xml zamiast format.html albo (lepiej) dodaj do Mime::Type.register "operowy" MIME.
 
Sprawa jest w sumie śliska, bo XHTML to aplikacja XML tak naprawdę. Czyli poprawne jest parsowanie XHTML jako HTML jak i jako XML.
 
 
Acha, znalazłem info na http://www.iana.org/assignments/media-types/application/, że xhtml-voice+xml to format przestarzały i nieaktualny.

--
Jarosław Zabiełło
http://blog.zabiello.com
 
Re: Opera + respond_to + ROR
#1263
Author: Zbyszek Malec
Date: Tue, 02 Jun 2009 20:18
26 lines
2247 bytes
Dnia Tue, 02 Jun 2009 19:57:01 +0100, Jarosław Zabiełło napisał(a):

> Niekoniecznie. Zobacz co się kryje pod zmienną format. Sprawdź czy zadziała ci dla format.xml. Założe się, że to RoR rozpoznaje jako XML, a nie HTML. W RoR 2.2 w pliku ...gems/actionpack-2.2.2/lib/action_controller/mime_types.rb masz wszystkie deficje MIME jakie są rozpoznawane przez ActionPack. I tam nie ma żadnego application/xhtml+voice+xml.

Dodałem sobie jakies wypisywanie w MimeResponds i widze, że trafia tam
:xml. Potem jest to konwertowane do 'XML' i szukane w napisie z
przeglądarki (ACCEPT header). Jeszcze patrzę na to, ale wydaje mi się to
dziwne, tak jakby RoR spodziewał się, że te formaty będą wielkimi literami
pisane.
 
> Mime::Type.register "*/*", :all
> ..
> Mime::Type.register "text/html", :html, %w( application/xhtml+xml ), %w( xhtml )
> ...
> Mime::Type.register "application/xml", :xml, %w( text/xml application/x-xml )
> 
> Jeśli tu jest problem to rozwiązana są dwa. Albo obsługujesz to przez format.xml zamiast format.html albo (lepiej) dodaj do Mime::Type.register "operowy" MIME.
> 
> Sprawa jest w sumie śliska, bo XHTML to aplikacja XML tak naprawdę. Czyli poprawne jest parsowanie XHTML jako HTML jak i jako XML.

Rzeczywiście, dostaję XML. W ogóle szkoda, że RoR forsuje XHTMLa i będę
musiał jeszcze z nim walczyć o HTMLa. Ale to jeszcze przede mną.

-- 
Zbyszek Malec
gg 2756100
Re: Opera + respond_to + ROR
#1264
Author: Zbyszek Malec
Date: Tue, 02 Jun 2009 20:22
11 lines
1133 bytes
Dnia Tue, 2 Jun 2009 22:18:59 +0200, Zbyszek Malec napisał(a):

> Jeszcze patrzę na to, ale wydaje mi się to
> dziwne, tak jakby RoR spodziewał się, że te formaty będą wielkimi literami
> pisane.

No dobra, już widzę, że głupotę napisałem.

-- 
Zbyszek Malec
gg 2756100
Re: Opera + respond_to + ROR
#1266
Author: Zbyszek Malec
Date: Sat, 20 Jun 2009 17:19
10 lines
1182 bytes
Dnia Tue, 02 Jun 2009 20:09:00 +0100, Jarosław Zabiełło napisał(a):

> Acha, znalazłem info na http://www.iana.org/assignments/media-types/application/, że xhtml-voice+xml to format przestarzały i nieaktualny.

Ja jeszcze też poszperałem i wydaje mi się, że to format.any w mojej wersji
RORa jest po prostu zepsute. Dzięki za pomoc.

-- 
Zbyszek Malec
gg 2756100
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads