Search squid archive

Re: Redirects changing POST to GET

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> I've setup a reverse proxy running Squid 2.6.STABLE6 5.el5_1.2 on RHEL5.1.
>  All remote access to the proxy is supposed to be via HTTPS, but since
> some of the protected apps give out absolute URL's at HTTP, I've also
> setup a redirector that listens on port 80 and sends a 301 redirect back
> to the client with an HTTPS version of the same URL.  My rewrite script is
> pretty simple:
>
> #!/usr/bin/perl
> $|=1;
> while (<>) {
>         s/^http:/301:https:/;
>         print;
> }
>
> The problem I'm seeing is that whenever a CGI is called via HTTP with a
> POST method, it gets converted to GET when the new request comes in on
> HTTPS.  This, of course, breaks the app.  Here's a log snippet:
>
> 1200950259.294      2 192.168.2.8 TCP_MISS/301 200 POST
> http://inf.domain.org/pls/orasso/orasso.wwsso_app_admin.ls_logout - NONE/-
> -
> 1200950259.396     75 192.168.2.8 TCP_MISS/404 704 GET
> https://inf.domain.org/pls/orasso/orasso.wwsso_app_admin.ls_logout -
> FIRST_UP_PAREN
> T/172.22.66.206 text/html
>
> When I bypass the proxy, the HTTP POST method works just fine.  Any ideas
> what might be causing the method to change or how to get around this?
> Every web search I try comes up empty.  I'm not sure if the variables are
> getting dropped in the process, or if the app just doesn't know how to
> handle GET methods, but regardless, this is a debilitating problem for
> this app, so I really need a solution.  The app in question is Oracle
> Collaboration Suite 10g, if it makes a difference.  My squid.conf follows.
>

Sounds like a broken CGI to me. With redirection to 301:... squid should
be actually sending the 301 back to the client for it to re-POST back to
the new URI.

Amos

> # grep -v "^#" squid.conf | sed -e '/^$/d'
> http_port 80 vhost
> https_port 443 cert=/etc/squid/server.crt key=/etc/squid/server.pem vhost
> icp_port 0
> cache_peer 172.26.6.159 parent 443 0 no-query originserver ssl
> sslflags=DONT_VERIFY_PEER name=server1-app-peer
> cache_peer 172.22.66.208 parent 80 0 no-query originserver name=app-peer
> cache_peer 172.22.66.206 parent 80 0 no-query originserver name=inf-peer
> hierarchy_stoplist cgi-bin ?
> acl QUERY urlpath_regex cgi-bin \?
> cache deny QUERY
> acl apache rep_header Server ^Apache
> broken_vary_encoding allow apache
> maximum_object_size 0 KB
> access_log /var/log/squid/access.log squid
> url_rewrite_program /usr/local/bin/rewrite-http
> refresh_pattern ^ftp:           1440    20%     10080
> refresh_pattern ^gopher:        1440    0%      1440
> refresh_pattern .               0       20%     4320
> acl all src 0.0.0.0/0.0.0.0
> acl manager proto cache_object
> acl localhost src 127.0.0.1/255.255.255.255
> acl to_localhost dst 127.0.0.0/8
> acl SSL_ports port 443
> acl Safe_ports port 80          # http
> acl Safe_ports port 21          # ftp
> acl Safe_ports port 443         # https
> acl Safe_ports port 70          # gopher
> acl Safe_ports port 210         # wais
> acl Safe_ports port 1025-65535  # unregistered ports
> acl Safe_ports port 280         # http-mgmt
> acl Safe_ports port 488         # gss-http
> acl Safe_ports port 591         # filemaker
> acl Safe_ports port 777         # multiling http
> acl CONNECT method CONNECT
> acl sites_server1-app dstdomain server1b.domain.org server1-app.domain.org
> acl sites_app dstdomain app.domain.org
> acl sites_inf dstdomain inf.domain.org
> acl webserver dst 172.26.6.159 192.168.2.65 172.22.66.208 172.22.66.206
> http_access allow webserver
> miss_access allow webserver
> http_access allow manager localhost
> http_access deny manager
> http_access deny !Safe_ports
> http_access deny CONNECT !SSL_ports
> http_access allow localhost
> http_access deny all
> http_reply_access allow all
> icp_access allow all
> cache_peer_access server1-app-peer allow sites_server1-app
> cache_peer_access app-peer allow sites_app
> cache_peer_access inf-peer allow sites_inf
> cache_mgr systems@xxxxxxxxxx
> coredump_dir /var/spool/squid
>



[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux