On Thu, Apr 15, 2010 at 6:39 PM, Evan Gilbert <uid...@google.com> wrote:
>
> On Thu, Apr 15, 2010 at 6:31 PM, Marius Scurtescu <mscurte...@google.com>
> wrote:
>>
>> OK, here is a concrete example:
>>
>> A Drupal (popular PHP based CMS) based web site wants to become an
>> OAuth 2 client. Among other things it needs to implement a callback
>> endpoint.
>>
>> Ideally this endpoint would look something like:
>> http://example.com/oauth/back
>>
>> Depending on what web server is used and how it is configured, the
>> above URL may not be possible. Drupal is dispatching all requests
>> through the main script and the path of the endpoint is passed as a
>> query parameter. Normally the above URL is seen as:
>> http://example.com/index.php?q=oauth/back
>>
>> The cleaner http://example.com/oauth/back is achieved with Apache URl
>> rewriting, but if Apache is not available or configured to support
>> that, you are stuck with the ugly query parameters.
>>
>> In the unlucky case the registered callback, and the actual callback
>> used in messages, is "http://example.com/index.php?q=oauth/back";. This
>> callback has a query parameter, it is not used for state, and it is
>> not an extension.
>>
>> It so happens that "q" will not conflict with any of the existing
>> OAuth 2 parameters, but you can see the potential issue.
>>
>> Now, even if Apache is available and URL rewrites work, so the nice
>> callback is used, a collision would still happen if "q" was used by
>> OAuth 2. Apache rewrites "/oauth/back", but the Drupal dispatcher
>> always sees "/index.php?q=oauth/back", so another q parameter would
>> break things.
>
> We should ask Drupal to change their query parameter to drupal_q.

And every single framework that does dispatching based on query parameters :-)


>> I do realize that a prefix will not solve ALL collisions and it is
>> also not solving the extension question, but I still think makes a big
>> difference.
>
> This use case makes sense, but do we know of any existing conflicts?
> Very few web servers have this restrictive a URL parameter policy - I think
> I'm OK losing compatibility with future web servers that reserve the
> "callback" parameter for other purposes.

My guess is that most PHP frameworks will have a similar problem, they
will require query parameters.  This is not a web server issue, but a
framework issue.

Not only "callback" can cause a collision, but every single OAuth 2 parameter.


Marius
_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to