keystoneauth/keystoneauth1
John Dennis b1301e606d Use comma as separator in ECP Accept HTTP header
During SAML ECP authentication 2 specially formatted HTTP headers
*MUST* be included in the request in order for the SP (Service
Provider) to recognize the client is ECP capable and to start the SAML
ECP flow. One is the PAOS header and the other is the Accept header
which must include the "application/vnd.paos+xml" media type. Media
types in the Accept header are separated by a comma (,). Unfortunately
keystoneauth uses a semicolon (;) as the media type separator. The
HTTP spec reserves the semicolon in the Accept header to attach
parameters to the media type. For example

Accept: type1;params1,type2;params2

Using a semicolon as a media type separator is syntactically invalid
and can cause failures in servers that parse the Accept header. For
example mod_auth_mellon emits this error message and fails to process
the ECP request:

request supplied valid PAOS header but omitted PAOS media type in Accept header
have_paos_media_type=False valid_paos_header=True is_paos=False

This indicates only 1 of the 2 required conditions were met.

Change-Id: I6469990a57762fc47b297d7b5b2b4cb4872df4ba
Signed-off-by: John Dennis <jdennis@redhat.com>
Closes-Bug: 1656946
2017-01-16 16:50:09 -05:00
..
access Add is_domain to keystoneauth token 2016-05-18 21:56:36 -03:00
exceptions Replace six.iteritems() with .items() 2016-12-09 10:59:00 +08:00
extras Use comma as separator in ECP Accept HTTP header 2017-01-16 16:50:09 -05:00
fixture Add tests for YamlJsonSerializer 2016-08-04 11:15:51 -05:00
hacking Move to the keystoneauth1 namespace 2015-06-25 16:48:54 -07:00
identity Replace six.iteritems() with .items() 2016-12-09 10:59:00 +08:00
loading Add a full listing of all auth plugins and there options 2017-01-10 14:40:28 +00:00
tests Replace yaml.load() with yaml.safe_load() 2017-01-16 15:34:40 +07:00
__init__.py Provide a RFC 7231 compliant user agent string 2015-12-15 16:45:17 -06:00
_utils.py Disables TCP_KEEPCNT when using Windows Subsystem for Linux 2016-08-23 03:36:45 +00:00
adapter.py Don't issue deprecation warning when nesting adapters 2016-12-06 09:14:44 +11:00
discover.py Removing tox ignore D401 and make keystoneauth compliant 2016-04-13 18:46:05 +00:00
plugin.py Removing tox ignore D400. 2016-04-18 21:20:51 +00:00
service_token.py Add a service token wrapper 2016-10-11 14:14:40 +11:00
session.py Only log application/json in session to start 2017-01-10 05:45:13 +00:00
token_endpoint.py Adding authentication compatibility for OpenStackClient 2016-03-07 23:38:22 +00:00