🚀 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 20:07
Opera + respond_to + ROR
#1235
Author: Zbyszek Malec
Date: Tue, 02 Jun 2009 20:07
42 lines
1238 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
#1236
Author: =?utf-8?B?SmFyb3
Date: Tue, 02 Jun 2009 19:57
50 lines
1844 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
#1237
Author: =?utf-8?B?SmFyb3
Date: Tue, 02 Jun 2009 20:09
51 lines
1943 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
#1238
Author: Zbyszek Malec
Date: Tue, 02 Jun 2009 22:18
27 lines
1468 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
#1239
Author: Zbyszek Malec
Date: Tue, 02 Jun 2009 22:22
12 lines
299 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
#1243
Author: Zbyszek Malec
Date: Sat, 20 Jun 2009 19:19
11 lines
388 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