Actually, I was wrong. The issue seems to be with the 401 Unauthorized
status needed with Digest authentication. I can control the header value
using both methods when the status is 200 OK, but BaseX does not allow me
to modify the WWW-Authenticate header when the status is 401. Is this
something that could be changed?


--
Tim A. Thompson
Discovery Metadata Librarian
Yale University Library


On Fri, Aug 18, 2017 at 10:26 PM, Tim Thompson <timat...@gmail.com> wrote:

> Christian,
>
> Here is a minimal example to try to illustrate what I am referring to:
>
> https://bibfram.es/basex/static/header-test.xhtml
>
> The first case (using the web:response-header() function) produces the
> desired response. You should see something like this after clicking "Test"
> (at least the first time, before caching):
>
> <header> <name>WWW-Authenticate</name> <value>Digest realm="BaseX", nonce="
> 35B2F3011682300F36AD37048B7B8560" </value> </header>
>
> The second case (using custom elements) does not produce the desired
> response. You should see something like this after clicking "Test":
>
> <header> <name>WWW-Authenticate</name> <value>Custom realm="BaseX"
> </value> </header>
>
> So the two methods are not producing the same output.
>
>
> --
> Tim A. Thompson
> Discovery Metadata Librarian
> Yale University Library
>
> On Fri, Aug 18, 2017 at 7:28 PM, Christian Grün <christian.gr...@gmail.com
> > wrote:
>
>> Hm, I still need to understand: Why can't you set WWW-Authenticate via
>> standard response elements if you can do it with web:response-header (which
>> simply generates elements that you could write by yourself)?
>>
>>
>>
>> Am 19.08.2017 1:04 vorm. schrieb "Tim Thompson" <timat...@gmail.com>:
>>
>> Yes, but that brings me back to my original issue. The standard RESTXQ
>> response headers let me set the HTTP status, but they don't let me override
>> some default header values: namely, WWW-Authenticate when BaseX is
>> configured for "Custom" authentication. The web:response-header function
>> does let me modify the header, but it does not let me set the HTTP status.
>>
>> So, there are two different solutions here; each solves part of my
>> problem, but neither one solves the whole problem :(
>>
>> Tim
>>
>> --
>> Tim A. Thompson
>> Discovery Metadata Librarian
>> Yale University Library
>>
>>
>> On Fri, Aug 18, 2017 at 4:46 PM, Christian Grün <
>> christian.gr...@gmail.com> wrote:
>>
>>> True. In many cases, you are probably more flexible by using the
>>> standard RESTXQ response headers.
>>>
>>> On Fri, Aug 18, 2017 at 4:37 PM, Tim Thompson <timat...@gmail.com>
>>> wrote:
>>> > Right, the status can be set when using the http:response element
>>> directly,
>>> > but the web:response-header function does not seem to provide access to
>>> > that. It only allows one to set new headers, not set the status of the
>>> > response.
>>> >
>>> >
>>> >
>>> >
>>> > --
>>> > Tim A. Thompson
>>> > Discovery Metadata Librarian
>>> > Yale University Library
>>> >
>>> >
>>> > On Fri, Aug 18, 2017 at 9:23 AM, Christian Grün <
>>> christian.gr...@gmail.com>
>>> > wrote:
>>> >>
>>> >> Hi Tim,
>>> >>
>>> >> That should be possible as well:
>>> >>
>>> >>   <rest:response>
>>> >>     <http:response status="{ ... }" message="{ ... }"/>
>>> >>   </rest:response>
>>> >>
>>> >> Cheers,
>>> >> Christian
>>> >>
>>> >>
>>> >>
>>> >> On Fri, Aug 18, 2017 at 3:20 PM, Tim Thompson <timat...@gmail.com>
>>> wrote:
>>> >> > Hi, Christian,
>>> >> >
>>> >> > Yes, it does. The only issue is that there doesn't seem to be a way
>>> to
>>> >> > set
>>> >> > the HTTP status and message via web:response-header, is that right?
>>> This
>>> >> > would be a great feature to have :)
>>> >> >
>>> >> > Tim
>>> >> >
>>> >> > --
>>> >> > Tim A. Thompson
>>> >> > Discovery Metadata Librarian
>>> >> > Yale University Library
>>> >> >
>>> >> >
>>> >> > On Fri, Aug 18, 2017 at 4:25 AM, Christian Grün
>>> >> > <christian.gr...@gmail.com>
>>> >> > wrote:
>>> >> >>
>>> >> >> Hi Tim,
>>> >> >>
>>> >> >> I am glad to hear the response header output does its job.
>>> >> >>
>>> >> >> As the function does nothing else than creating a response header
>>> >> >> (unfortunately with this standard caching directive – I think I
>>> will
>>> >> >> remove it along with BaseX 8.7), you could try to replace your
>>> >> >> response elements with the function’s result. Does this help?
>>> >> >>
>>> >> >> Christian
>>> >> >>
>>> >> >>
>>> >> >>
>>> >> >> On Thu, Aug 17, 2017 at 9:21 PM, Tim Thompson <timat...@gmail.com>
>>> >> >> wrote:
>>> >> >> > Using the web:response-header() function from the BaseX Web
>>> Module
>>> >> >> > seems
>>> >> >> > to
>>> >> >> > work for overriding default headers
>>> >> >> > (http://docs.basex.org/wiki/Web_Module#web:response-header). I
>>> do
>>> >> >> > wonder
>>> >> >> > why
>>> >> >> > the behavior differs between this function and directly using a
>>> >> >> > rest:response element. Shouldn't these two be equivalent?
>>> >> >> >
>>> >> >> > Thanks,
>>> >> >> > Tim
>>> >> >> >
>>> >> >> >
>>> >> >> > --
>>> >> >> > Tim A. Thompson
>>> >> >> > Discovery Metadata Librarian
>>> >> >> > Yale University Library
>>> >> >> >
>>> >> >> >
>>> >> >> > On Thu, Aug 17, 2017 at 11:50 AM, Tim Thompson <
>>> timat...@gmail.com>
>>> >> >> > wrote:
>>> >> >> >>
>>> >> >> >> Hello,
>>> >> >> >>
>>> >> >> >> Is it possible to overwrite default HTTP headers in RESTXQ? I am
>>> >> >> >> running
>>> >> >> >> BaseX in Tomcat 7 and have set the authmethod param set to
>>> "Custom."
>>> >> >> >> I
>>> >> >> >> wanted to define my own WWW-Authenticate header for Digest
>>> >> >> >> authentication. I
>>> >> >> >> tried something like this:
>>> >> >> >>
>>> >> >> >> <http:header
>>> >> >> >>         name="WWW-Authenticate"
>>> >> >> >>         value="{
>>> >> >> >>           ``[Digest realm="BaseX",
>>> >> >> >>                     qop="auth, auth-int",
>>> >> >> >>                     algorithm=MD5,
>>> >> >> >>                     nonce=`{hash:md5(random:uuid())}`]``
>>> >> >> >>         }"/>
>>> >> >> >>
>>> >> >> >> (in a custom response, as specified in
>>> >> >> >> http://docs.basex.org/wiki/RESTXQ#Custom_Response).
>>> >> >> >>
>>> >> >> >> However, the WWW-Authenticate header only returns a value of
>>> Custom
>>> >> >> >> realm="BaseX" no matter what I do in the custom RESTXQ response.
>>> >> >> >>
>>> >> >> >> Thanks in advance,
>>> >> >> >> Tim
>>> >> >> >>
>>> >> >> >> --
>>> >> >> >> Tim A. Thompson
>>> >> >> >> Discovery Metadata Librarian
>>> >> >> >> Yale University Library
>>> >> >> >>
>>> >> >> >
>>> >> >
>>> >> >
>>> >
>>> >
>>>
>>
>>
>>
>

Reply via email to