Solved (Re: How to get wget to fail to fetch a password-protected URL after a previous success?)
Omer Zak
w1 at zak.co.il
Mon Dec 19 11:11:27 IST 2022
I solved the problem.
Turns out that I used the wrong format of a location directive in a
Nginx configuration.
The offending stanza was:
location = /p2mb {
root /usr/share/nginx/html/stuff;
auth_basic "P2MB Stuff";
auth_basic_user_file /etc/nginx/auth-basic-passwords-p2mb;
}
The correct stanza is:
location /p2mb {
root /usr/share/nginx/html/stuff;
auth_basic "P2MB Stuff";
auth_basic_user_file /etc/nginx/auth-basic-passwords-p2mb;
}
And I did not notice that I was using different URLs in my tests (it
was late at night :-) ).
I experimented with both
wget http://somehostname/p2mb
(is blocked by both stanzas)
and
wget http://somehostname/p2mb/somefile.ext
(is blocked only by the second stanza)
Thanks to those who tried to help me both on Linux-IL mailing list and
privately.
In the big scheme of things, my effort to develop tests for the website
did uncover a bug - the above mistake in the location directive.
bats-core (https://github.com/bats-core/bats-core) kicks ass!
--- Omer
On Mon, 2022-12-19 at 10:10 +0200, guy keren wrote:
>
> use 'strace' to try to locate where it might be storing the
> credentials.
>
> --guy
>
> On 12/19/22 03:57, Omer Zak wrote:
> > I am writing regression tests to test that a website continues to
> > behave the same after moving to another host.
> >
> > Among other things, I want to test that a password-protected area
> > in
> > the website continues to work as expected, protecting its contents.
> >
> > I am trying to test as follows.
> >
> > wget ...other options... URL
> > # no passwords - expected to fail
> > wget --user=wrong --password=wrong ...other options... URL
> > # expected to fail
> > wget --user=correct --password=correct ...other options... URL
> > # expected to succeed
> >
> > However after 1st time the correct user+password are presented,
> > subsequent wget's to the same URL do not fail.
> >
> > I Googled but found nothing useful.
> > My version of wget is: GNU Wget 1.21 built on linux-gnu.
> > (there is more information, will be provided if relevant)
> >
> > At the suggestion of:
> > https://stackoverflow.com/questions/35076334/dd-wrt-wget-returns-a-cached-file
> > I tried:
> > wget -p --no-http-keep-alive --no-cache --no-cookies \
> > --user=whatever --password=whatever
> > --no-host-directories URL
> > Even this did not fail.
> >
> > There is no obvious place in the filesystem where wget might cache
> > its
> > credentials.
> >
> > How can I get wget to fail to fetch a password-protected web
> > resource
> > (HTTP 403 Forbidden) after it succeeded in fetching the same
> > resource
> > previously?
--
"Prior to capitalism, the way people amassed great wealth was by
looting, plundering and enslaving their fellow man. Capitalism made it
possible to become wealthy by serving your fellow man." - Walter E.
Williams
My own blog is at https://tddpirate.zak.co.il/
My opinions, as expressed in this E-mail message, are mine alone.
They do not represent the official policy of any organization with
which I may be affiliated in any way.
WARNING TO SPAMMERS: at https://www.zak.co.il/spamwarning.html
More information about the Linux-il
mailing list