[api][sdk][dev][oslo] using uWSGI breaks CORS config
Sean Mooney
smooney at redhat.com
Tue Jan 21 17:15:01 UTC 2020
On Tue, 2020-01-21 at 17:30 +0100, Ben Nemec wrote:
>
> On 1/21/20 4:55 PM, Michael McCune wrote:
> >
> >
> > On Tue, Jan 21, 2020 at 5:37 AM Radosław Piliszek
> > <radoslaw.piliszek at gmail.com <mailto:radoslaw.piliszek at gmail.com>> wrote:
> >
> > Hi, Michael!
> >
> > Thanks for your interest. I was also surprised that it does not work.
> > It looks simple enough to not break...
> >
> > Since I wrote the email, I did more research on how to tackle this
> > problem.
> > For now I posted a bug to devstack that CORS is out of reach with pure
> > devstack [1].
> >
> >
> > that sounds like a good first step.
> >
> > Only keystone and placement can be configured to use mod_wsgi, others
> > default to uwsgi (or eventlet, to be precise, but these are
> > irrelevant).
> > It's really either hacking browsers or hacking apache config to
> > include relevant CORS headers.
> >
> >
> > this is something that i think we need to know though, because if uWSGI
> > has broken CORS support then we need to fix it or start advising against
> > its usage.
>
> Just to clarify, based on [0] it looks like this is a uwsgi bug and not
> something we're doing wrong (other than recommending uwsgi ;-). Is that
> correct?
>
> 0: https://github.com/unbit/uwsgi/issues/1550
is it somehting that we expect the wsgi server to add or the applciation?
e.g. should the CORS headders be added by the apache/nginx/uwsgi or openstack.
but my only interaction in the past was setting it via the apache .htaccess file.
https://enable-cors.org/server_apache.html you can also do it in nginx https://enable-cors.org/server_nginx.html
it seam like we use oslo midelware to do this dynmaically form the api code.
https://docs.openstack.org/oslo.middleware/latest/admin/cross-project-cors.html
so perhaps that is not executing or uswsgi si stripping the headers.
they may be filtering them but i cant really find any documentaiton on uswgi and CORS configuration
>
> >
> > peace o/
> >
> > [1] https://bugs.launchpad.net/devstack/+bug/1860287
> >
> > -yoctozepto
> >
> > wt., 21 sty 2020 o 10:00 Michael McCune <elmiko at redhat.com
> > <mailto:elmiko at redhat.com>> napisał(a):
> > >
> > > hi Radoslaw,
> > >
> > > i am also curious about this because i had thought we had CORS
> > issued solved for uWSGI in the past, i will need to look around to
> > find the conversations i was having.
> > >
> > > thanks for sharing your investigation, i think this is interesting.
> > >
> > > peace o/
> > >
> > > On Fri, Jan 17, 2020 at 1:45 PM Radosław Piliszek
> > <radoslaw.piliszek at gmail.com <mailto:radoslaw.piliszek at gmail.com>>
> > wrote:
> > >>
> > >> Fellow Devs,
> > >>
> > >> as you might have noticed I started taking care of
> > openstack/js-openstack-lib,
> > >> now under the openstacksdk umbrella [1].
> > >> First goal is to modernize the CI to use Zuul v3, current
> > devstack and
> > >> nodejs, still WIP [2].
> > >>
> > >> As part of the original suite of tests, the unit and functional
> > tests
> > >> are run from browsers as well as from node.
> > >> And, as you may know, browsers care about CORS [3].
> > >> js-openstack-lib is connecting to various OpenStack APIs (currently
> > >> limited to keystone, glance, neutron and nova) to act on behalf
> > of the
> > >> user (just like openstacksdk/client does).
> > >> oslo.middleware, as used by those APIs, provides a way to configure
> > >> CORS by setting params in the [cors] group but uWSGI seemingly
> > ignores
> > >> that completely [4].
> > >> I had to switch to mod_wsgi+apache instead of uwsgi+apache to
> > get past
> > >> that issue.
> > >> I could not reproduce locally because kolla (thankfully) uses mostly
> > >> mod_wsgi atm.
> > >>
> > >> The issue I see is that uWSGI is proposed as the future and mod_wsgi
> > >> is termed deprecated.
> > >> However, this means the future is broken w.r.t. CORS and so any
> > modern
> > >> web interface with it if not sitting on the exact same host and port
> > >> (which is usually different between OpenStack APIs and any UI).
> > >>
> > >> [1] https://review.opendev.org/701854
> > >> [2] https://review.opendev.org/702132
> > >> [3] https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
> > >> [4] https://github.com/unbit/uwsgi/issues/1550
> > >>
> > >> -yoctozepto
> > >>
> >
>
>
More information about the openstack-discuss
mailing list