Clean up token extra code
Originally, the "extra" in token data is generated by auth plugin
and then will be return to users within token data.
In Kilo, the "extra" in token data was deprecated[1], after that
if the auth plugin generate the "extra", a warning log will be
raised. To stop the warning, the auth plugins should stop
generating "extra" field.
After two releases, in Mitaka, the "extra" in token data was
removed[2], but the "extra" was still created by default as an
empty dict {}. Actually, "extra" should not be created any more
in Mitaka because Keystone has warned the auth plugins for two
releases.
Now in Rocky, it's safe enough to remove the "extra" from token
issue flow at all since it has never been used from Mitaka. The
only concern for the out tree plugins about the removal is that
if they still put "extra" into auth_context, Keystone will raise
KeyError. But can it be happened? Only if the out tree plugins
ignore the warning in Kilo, and still contain "extra" but never
use them from Mitaka. For most auth plugins which follow the
Keystone deprecation step, this patch is a silent change.
[1]: https://review.openstack.org/#/c/162662
[2]: https://review.openstack.org/#/c/249480
Change-Id: I828cc0ad3ac265abdfea2e1571806add128ae51e
This commit is contained in:
+384
-160
@@ -98,10 +98,10 @@ and supported media types:
|
||||
Tokens
|
||||
======
|
||||
|
||||
Default scope
|
||||
-------------
|
||||
Unscoped
|
||||
--------
|
||||
|
||||
Get a token with default scope (may be unscoped):
|
||||
Get an unscoped token:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
@@ -131,60 +131,28 @@ Example response:
|
||||
X-Subject-Token: MIIFvgY...
|
||||
Vary: X-Auth-Token
|
||||
Content-Type: application/json
|
||||
Content-Length: 1025
|
||||
Date: Tue, 10 Jun 2014 20:55:16 GMT
|
||||
Content-Length: 312
|
||||
Date: Fri, 11 May 2018 03:15:01 GMT
|
||||
|
||||
{
|
||||
"token": {
|
||||
"methods": ["password"],
|
||||
"roles": [{
|
||||
"id": "9fe2ff9ee4384b1894a90878d3e92bab",
|
||||
"name": "_member_"
|
||||
}, {
|
||||
"id": "c703057be878458588961ce9a0ce686b",
|
||||
"name": "admin"
|
||||
}],
|
||||
"expires_at": "2014-06-10T2:55:16.806001Z",
|
||||
"project": {
|
||||
"domain": {
|
||||
"id": "default",
|
||||
"name": "Default"
|
||||
},
|
||||
"id": "8538a3f13f9541b28c2620eb19065e45",
|
||||
"name": "admin"
|
||||
},
|
||||
"catalog": [{
|
||||
"endpoints": [{
|
||||
"url": "http://localhost:3537/v2.0",
|
||||
"region": "RegionOne",
|
||||
"interface": "admin",
|
||||
"id": "29beb2f1567642eb810b042b6719ea88"
|
||||
}, {
|
||||
"url": "http://localhost:5000/v2.0",
|
||||
"region": "RegionOne",
|
||||
"interface": "internal",
|
||||
"id": "8707e3735d4415c97ae231b4841eb1c"
|
||||
}, {
|
||||
"url": "http://localhost:5000/v2.0",
|
||||
"region": "RegionOne",
|
||||
"interface": "public",
|
||||
"id": "ef303187fc8d41668f25199c298396a5"
|
||||
}],
|
||||
"type": "identity",
|
||||
"id": "bd73972c0e14fb69bae8ff76e112a90",
|
||||
"name": "keystone"
|
||||
}],
|
||||
"extras": {},
|
||||
"user": {
|
||||
"domain": {
|
||||
"id": "default",
|
||||
"name": "Default"
|
||||
},
|
||||
"id": "3ec3164f750146be97f21559ee4d9c51",
|
||||
"name": "admin"
|
||||
},
|
||||
"audit_ids": ["yRt0UrxJSs6-WYJgwEMMmg"],
|
||||
"issued_at": "201406-10T20:55:16.806027Z"
|
||||
"issued_at": "2018-05-11T03:15:01.000000Z",
|
||||
"audit_ids": [
|
||||
"0PKh_BDKTWqqaFONE-Sxbg"
|
||||
],
|
||||
"methods": [
|
||||
"password"
|
||||
],
|
||||
"expires_at": "2018-05-11T04:15:01.000000Z",
|
||||
"user": {
|
||||
"password_expires_at": null,
|
||||
"domain": {
|
||||
"id": "default",
|
||||
"name": "Default"
|
||||
},
|
||||
"id": "9a7e43333cc44ef4b988f05fc3d3a49d",
|
||||
"name": "admin"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -212,7 +180,7 @@ Get a project-scoped token:
|
||||
},
|
||||
"scope": {
|
||||
"project": {
|
||||
"name": "demo",
|
||||
"name": "admin",
|
||||
"domain": { "id": "default" }
|
||||
}
|
||||
}
|
||||
@@ -228,57 +196,203 @@ Example response:
|
||||
X-Subject-Token: MIIFfQ...
|
||||
Vary: X-Auth-Token
|
||||
Content-Type: application/json
|
||||
Content-Length: 960
|
||||
Date: Tue, 10 Jun 2014 20:40:14 GMT
|
||||
Content-Length: 3518
|
||||
Date: Fri, 11 May 2018 03:38:39 GMT
|
||||
|
||||
{
|
||||
"token": {
|
||||
"audit_ids": ["ECwrVNWbSCqmEgPnu0YCRw"],
|
||||
"methods": ["password"],
|
||||
"roles": [{
|
||||
"id": "c703057be878458588961ce9a0ce686b",
|
||||
"name": "admin"
|
||||
}],
|
||||
"expires_at": "2014-06-10T21:40:14.360795Z",
|
||||
"project": {
|
||||
"domain": {
|
||||
"id": "default",
|
||||
"name": "Default"
|
||||
"is_domain": false,
|
||||
"methods": [
|
||||
"password"
|
||||
],
|
||||
"roles": [
|
||||
{
|
||||
"id": "b57680c826b44b5ca6122d0f792c3184",
|
||||
"name": "Member"
|
||||
},
|
||||
{
|
||||
"id": "3a7bd258345f47479a26aea11a6cc2bb",
|
||||
"name": "admin"
|
||||
}
|
||||
],
|
||||
"expires_at": "2018-05-11T04:38:39.000000Z",
|
||||
"project": {
|
||||
"domain": {
|
||||
"id": "default",
|
||||
"name": "Default"
|
||||
},
|
||||
"id": "3a705b9f56bb439381b43c4fe59dccce",
|
||||
"name": "admin"
|
||||
},
|
||||
"id": "3d4c2c82bd5948f0bcab0cf3a7c9b48c",
|
||||
"name": "demo"
|
||||
},
|
||||
"catalog": [{
|
||||
"endpoints": [{
|
||||
"url": "http://localhost:35357/v2.0",
|
||||
"region": "RegionOne",
|
||||
"interface": "admin",
|
||||
"id": "29beb2f1567642eb810b042b6719ea88"
|
||||
}, {
|
||||
"url": "http://localhost:5000/v2.0",
|
||||
"region": "RegionOne",
|
||||
"interface": "internal",
|
||||
"id": "87057e3735d4415c97ae231b4841eb1c"
|
||||
}, {
|
||||
"url": "http://localhost:5000/v2.0",
|
||||
"region": "RegionOne",
|
||||
"interface": "public",
|
||||
"id": "ef303187fc8d41668f25199c298396a5"
|
||||
}],
|
||||
"type": "identity",
|
||||
"id": "bd7397d2c0e14fb69bae8ff76e112a90",
|
||||
"name": "keystone"
|
||||
}],
|
||||
"extras": {},
|
||||
"user": {
|
||||
"domain": {
|
||||
"id": "default",
|
||||
"name": "Default"
|
||||
"catalog": [
|
||||
{
|
||||
"endpoints": [
|
||||
{
|
||||
"url": "http://localhost/identity",
|
||||
"interface": "public",
|
||||
"region": "RegionOne",
|
||||
"region_id": "RegionOne",
|
||||
"id": "30a91932e4e94a8ca4dc145bb1bb6b4b"
|
||||
},
|
||||
{
|
||||
"url": "http://localhost/identity",
|
||||
"interface": "admin",
|
||||
"region": "RegionOne",
|
||||
"region_id": "RegionOne",
|
||||
"id": "94d4768735104c9091f0468e7d31c189"
|
||||
}
|
||||
],
|
||||
"type": "identity",
|
||||
"id": "09af9253500b41ef976a07322b2fa388",
|
||||
"name": "keystone"
|
||||
},
|
||||
{
|
||||
"endpoints": [
|
||||
{
|
||||
"url": "http://localhost/volume/v2/3a705b9f56bb439381b43c4fe59dccce",
|
||||
"interface": "public",
|
||||
"region": "RegionOne",
|
||||
"region_id": "RegionOne",
|
||||
"id": "1c4ffe935e7643d99b55938cb12bc38d"
|
||||
}
|
||||
],
|
||||
"type": "volumev2",
|
||||
"id": "413a44234e1a4c3781d4a3c7a7e4c895",
|
||||
"name": "cinderv2"
|
||||
},
|
||||
{
|
||||
"endpoints": [
|
||||
{
|
||||
"url": "http://localhost/image",
|
||||
"interface": "public",
|
||||
"region": "RegionOne",
|
||||
"region_id": "RegionOne",
|
||||
"id": "33237fdd1a744d0fb40f9127f21ddad4"
|
||||
}
|
||||
],
|
||||
"type": "image",
|
||||
"id": "4d473252145546d2aa589605f1e177c7",
|
||||
"name": "glance"
|
||||
},
|
||||
{
|
||||
"endpoints": [
|
||||
{
|
||||
"url": "http://localhost/placement",
|
||||
"interface": "public",
|
||||
"region": "RegionOne",
|
||||
"region_id": "RegionOne",
|
||||
"id": "1a421e2f97684d3f86ab4d2cc9c86362"
|
||||
}
|
||||
],
|
||||
"type": "placement",
|
||||
"id": "5dcecbdd4a1d44d0855c560301b27bb5",
|
||||
"name": "placement"
|
||||
},
|
||||
{
|
||||
"endpoints": [
|
||||
{
|
||||
"url": "http://localhost/compute/v2.1",
|
||||
"interface": "public",
|
||||
"region": "RegionOne",
|
||||
"region_id": "RegionOne",
|
||||
"id": "8e7ea663cc41477c9629cc710bbb1c7d"
|
||||
}
|
||||
],
|
||||
"type": "compute",
|
||||
"id": "87d49efa8fb64006bdb123d223ddcae2",
|
||||
"name": "nova"
|
||||
},
|
||||
{
|
||||
"endpoints": [
|
||||
{
|
||||
"url": "http://localhost/volume/v1/3a705b9f56bb439381b43c4fe59dccce",
|
||||
"interface": "public",
|
||||
"region": "RegionOne",
|
||||
"region_id": "RegionOne",
|
||||
"id": "97a2c0ac7e304316a1eb58a3757e6ef8"
|
||||
}
|
||||
],
|
||||
"type": "volume",
|
||||
"id": "9408080f1970482aa0e38bc2d4ea34b7",
|
||||
"name": "cinder"
|
||||
},
|
||||
{
|
||||
"endpoints": [
|
||||
{
|
||||
"url": "http://localhost:8080/v1/AUTH_3a705b9f56bb439381b43c4fe59dccce",
|
||||
"interface": "public",
|
||||
"region": "RegionOne",
|
||||
"region_id": "RegionOne",
|
||||
"id": "d0d823615b0747a9aeca8b83fba105f0"
|
||||
},
|
||||
{
|
||||
"url": "http://localhost:8080",
|
||||
"interface": "admin",
|
||||
"region": "RegionOne",
|
||||
"region_id": "RegionOne",
|
||||
"id": "e4cb86d9232349f091e0a02390deeb79"
|
||||
}
|
||||
],
|
||||
"type": "object-store",
|
||||
"id": "957ba1fe8b0443f0afe64bfd0858ba5e",
|
||||
"name": "swift"
|
||||
},
|
||||
{
|
||||
"endpoints": [
|
||||
{
|
||||
"url": "http://localhost:9696/",
|
||||
"interface": "public",
|
||||
"region": "RegionOne",
|
||||
"region_id": "RegionOne",
|
||||
"id": "aa4a0e61cdc54372967ee9e2298f1d53"
|
||||
}
|
||||
],
|
||||
"type": "network",
|
||||
"id": "960fbc66bfcb4fa7900023f647fdc3a5",
|
||||
"name": "neutron"
|
||||
},
|
||||
{
|
||||
"endpoints": [
|
||||
{
|
||||
"url": "http://localhost/volume/v3/3a705b9f56bb439381b43c4fe59dccce",
|
||||
"interface": "public",
|
||||
"region": "RegionOne",
|
||||
"region_id": "RegionOne",
|
||||
"id": "0c38045a91c34d798e0d2008fee7521d"
|
||||
}
|
||||
],
|
||||
"type": "volumev3",
|
||||
"id": "98adb083914f423d9cb74ad5527e37cb",
|
||||
"name": "cinderv3"
|
||||
},
|
||||
{
|
||||
"endpoints": [
|
||||
{
|
||||
"url": "http://localhost/compute/v2/3a705b9f56bb439381b43c4fe59dccce",
|
||||
"interface": "public",
|
||||
"region": "RegionOne",
|
||||
"region_id": "RegionOne",
|
||||
"id": "562e12b9ee9549e8b857218ccf2ae321"
|
||||
}
|
||||
],
|
||||
"type": "compute_legacy",
|
||||
"id": "a31e688016614430b28cddddf12d7b88",
|
||||
"name": "nova_legacy"
|
||||
}
|
||||
],
|
||||
"user": {
|
||||
"password_expires_at": null,
|
||||
"domain": {
|
||||
"id": "default",
|
||||
"name": "Default"
|
||||
},
|
||||
"id": "9a7e43333cc44ef4b988f05fc3d3a49d",
|
||||
"name": "admin"
|
||||
},
|
||||
"id": "3ec3164f750146be97f21559ee4d9c51",
|
||||
"name": "admin"
|
||||
},
|
||||
"issued_at": "2014-06-10T20:40:14.360822Z"
|
||||
"audit_ids": [
|
||||
"TbdrnW4MQDq_GPAVN9-JOQ"
|
||||
],
|
||||
"issued_at": "2018-05-11T03:38:39.000000Z"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -322,53 +436,159 @@ Example response:
|
||||
X-Subject-Token: MIIFNg...
|
||||
Vary: X-Auth-Token
|
||||
Content-Type: application/json
|
||||
Content-Length: 889
|
||||
Date: Tue, 10 Jun 2014 20:52:59 GMT
|
||||
Content-Length: 2590
|
||||
Date: Fri, 11 May 2018 03:37:09 GMT
|
||||
|
||||
{
|
||||
"token": {
|
||||
"domain": {
|
||||
"id": "default",
|
||||
"name": "Default"
|
||||
},
|
||||
"methods": ["password"],
|
||||
"roles": [{
|
||||
"id": "c703057be878458588961ce9a0ce686b",
|
||||
"name": "admin"
|
||||
}],
|
||||
"expires_at": "2014-06-10T21:52:58.852167Z",
|
||||
"catalog": [{
|
||||
"endpoints": [{
|
||||
"url": "http://localhost:35357/v2.0",
|
||||
"region": "RegionOne",
|
||||
"interface": "admin",
|
||||
"id": "29beb2f1567642eb810b042b6719ea88"
|
||||
}, {
|
||||
"url": "http://localhost:5000/v2.0",
|
||||
"region": "RegionOne",
|
||||
"interface": "internal",
|
||||
"id": "87057e3735d4415c97ae231b4841eb1c"
|
||||
}, {
|
||||
"url": "http://localhost:5000/v2.0",
|
||||
"region": "RegionOne",
|
||||
"interface": "public",
|
||||
"id": "ef303187fc8d41668f25199c298396a5"
|
||||
}],
|
||||
"type": "identity",
|
||||
"id": "bd7397d2c0e14fb69bae8ff76e112a90",
|
||||
"name": "keystone"
|
||||
}],
|
||||
"extras": {},
|
||||
"user": {
|
||||
"domain": {
|
||||
"id": "default",
|
||||
"name": "Default"
|
||||
"id": "default",
|
||||
"name": "Default"
|
||||
},
|
||||
"id": "3ec3164f750146be97f21559ee4d9c51",
|
||||
"name": "admin"
|
||||
},
|
||||
"audit_ids": ["Xpa6Uyn-T9S6mTREudUH3w"],
|
||||
"issued_at": "2014-06-10T20:52:58.852194Z"
|
||||
"methods": [
|
||||
"password"
|
||||
],
|
||||
"roles": [
|
||||
{
|
||||
"id": "b57680c826b44b5ca6122d0f792c3184",
|
||||
"name": "Member"
|
||||
},
|
||||
{
|
||||
"id": "3a7bd258345f47479a26aea11a6cc2bb",
|
||||
"name": "admin"
|
||||
}
|
||||
],
|
||||
"expires_at": "2018-05-11T04:37:09.000000Z",
|
||||
"catalog": [
|
||||
{
|
||||
"endpoints": [
|
||||
{
|
||||
"region_id": "RegionOne",
|
||||
"url": "http://localhost/identity",
|
||||
"region": "RegionOne",
|
||||
"interface": "public",
|
||||
"id": "30a91932e4e94a8ca4dc145bb1bb6b4b"
|
||||
},
|
||||
{
|
||||
"region_id": "RegionOne",
|
||||
"url": "http://localhost/identity",
|
||||
"region": "RegionOne",
|
||||
"interface": "admin",
|
||||
"id": "94d4768735104c9091f0468e7d31c189"
|
||||
}
|
||||
],
|
||||
"type": "identity",
|
||||
"id": "09af9253500b41ef976a07322b2fa388",
|
||||
"name": "keystone"
|
||||
},
|
||||
{
|
||||
"endpoints": [],
|
||||
"type": "volumev2",
|
||||
"id": "413a44234e1a4c3781d4a3c7a7e4c895",
|
||||
"name": "cinderv2"
|
||||
},
|
||||
{
|
||||
"endpoints": [
|
||||
{
|
||||
"region_id": "RegionOne",
|
||||
"url": "http://localhost/image",
|
||||
"region": "RegionOne",
|
||||
"interface": "public",
|
||||
"id": "33237fdd1a744d0fb40f9127f21ddad4"
|
||||
}
|
||||
],
|
||||
"type": "image",
|
||||
"id": "4d473252145546d2aa589605f1e177c7",
|
||||
"name": "glance"
|
||||
},
|
||||
{
|
||||
"endpoints": [
|
||||
{
|
||||
"region_id": "RegionOne",
|
||||
"url": "http://localhost/placement",
|
||||
"region": "RegionOne",
|
||||
"interface": "public",
|
||||
"id": "1a421e2f97684d3f86ab4d2cc9c86362"
|
||||
}
|
||||
],
|
||||
"type": "placement",
|
||||
"id": "5dcecbdd4a1d44d0855c560301b27bb5",
|
||||
"name": "placement"
|
||||
},
|
||||
{
|
||||
"endpoints": [
|
||||
{
|
||||
"region_id": "RegionOne",
|
||||
"url": "http://localhost/compute/v2.1",
|
||||
"region": "RegionOne",
|
||||
"interface": "public",
|
||||
"id": "8e7ea663cc41477c9629cc710bbb1c7d"
|
||||
}
|
||||
],
|
||||
"type": "compute",
|
||||
"id": "87d49efa8fb64006bdb123d223ddcae2",
|
||||
"name": "nova"
|
||||
},
|
||||
{
|
||||
"endpoints": [],
|
||||
"type": "volume",
|
||||
"id": "9408080f1970482aa0e38bc2d4ea34b7",
|
||||
"name": "cinder"
|
||||
},
|
||||
{
|
||||
"endpoints": [
|
||||
{
|
||||
"region_id": "RegionOne",
|
||||
"url": "http://localhost:8080",
|
||||
"region": "RegionOne",
|
||||
"interface": "admin",
|
||||
"id": "e4cb86d9232349f091e0a02390deeb79"
|
||||
}
|
||||
],
|
||||
"type": "object-store",
|
||||
"id": "957ba1fe8b0443f0afe64bfd0858ba5e",
|
||||
"name": "swift"
|
||||
},
|
||||
{
|
||||
"endpoints": [
|
||||
{
|
||||
"region_id": "RegionOne",
|
||||
"url": "http://localhost:9696/",
|
||||
"region": "RegionOne",
|
||||
"interface": "public",
|
||||
"id": "aa4a0e61cdc54372967ee9e2298f1d53"
|
||||
}
|
||||
],
|
||||
"type": "network",
|
||||
"id": "960fbc66bfcb4fa7900023f647fdc3a5",
|
||||
"name": "neutron"
|
||||
},
|
||||
{
|
||||
"endpoints": [],
|
||||
"type": "volumev3",
|
||||
"id": "98adb083914f423d9cb74ad5527e37cb",
|
||||
"name": "cinderv3"
|
||||
},
|
||||
{
|
||||
"endpoints": [],
|
||||
"type": "compute_legacy",
|
||||
"id": "a31e688016614430b28cddddf12d7b88",
|
||||
"name": "nova_legacy"
|
||||
}
|
||||
],
|
||||
"user": {
|
||||
"password_expires_at": null,
|
||||
"domain": {
|
||||
"id": "default",
|
||||
"name": "Default"
|
||||
},
|
||||
"id": "9a7e43333cc44ef4b988f05fc3d3a49d",
|
||||
"name": "admin"
|
||||
},
|
||||
"audit_ids": [
|
||||
"Sfc8_kywQx-tWNkEVqA1Iw"
|
||||
],
|
||||
"issued_at": "2018-05-11T03:37:09.000000Z"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -403,26 +623,30 @@ Example response:
|
||||
X-Subject-Token: MIIFxw...
|
||||
Vary: X-Auth-Token
|
||||
Content-Type: application/json
|
||||
Content-Length: 1034
|
||||
Date: Tue, 10 Jun 2014 21:00:05 GMT
|
||||
Content-Length: 347
|
||||
Date: Fri, 11 May 2018 03:41:29 GMT
|
||||
|
||||
{
|
||||
"token": {
|
||||
"methods": ["token", "password"],
|
||||
"expires_at": "2015-05-28T07:43:44.808209Z",
|
||||
"extras": {},
|
||||
"user": {
|
||||
"domain": {
|
||||
"id": "default",
|
||||
"name": "Default"
|
||||
},
|
||||
"id": "753867c25c3340ffad1abc22d488c31a",
|
||||
"name": "admin"
|
||||
},
|
||||
"audit_ids": ["ZE0OPSuzTmCXHo0eIOYltw",
|
||||
"xxIQCkHOQOywL0oY6CTppQ"
|
||||
],
|
||||
"issued_at": "2015-05-28T07:19:23.763532Z"
|
||||
"issued_at": "2018-05-11T03:41:29.000000Z",
|
||||
"audit_ids": [
|
||||
"zS_C_KROTFeZm-VlG1LjbA",
|
||||
"RAjE82q8Rz-Cd50ogCpx3Q"
|
||||
],
|
||||
"methods": [
|
||||
"token",
|
||||
"password"
|
||||
],
|
||||
"expires_at": "2018-05-11T04:40:00.000000Z",
|
||||
"user": {
|
||||
"password_expires_at": null,
|
||||
"domain": {
|
||||
"id": "default",
|
||||
"name": "Default"
|
||||
},
|
||||
"id": "9a7e43333cc44ef4b988f05fc3d3a49d",
|
||||
"name": "admin"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -47,16 +47,14 @@ parameters.
|
||||
* ``context`` - keystone's request context
|
||||
* ``auth_payload`` - the content of the authentication for a given method
|
||||
* ``auth_context`` - user authentication context, a dictionary shared by all
|
||||
plugins. It contains ``method_names`` and ``extras`` by default.
|
||||
``method_names`` is a list and ``extras`` is a dictionary.
|
||||
plugins. It contains ``method_names`` and ``bind`` by default.
|
||||
``method_names`` is a list and ``bind`` is a dictionary.
|
||||
|
||||
If successful, the ``authenticate()`` method must provide a valid ``user_id``
|
||||
in ``auth_context`` and return ``None``. ``method_name`` is used to convey any
|
||||
additional authentication methods in case authentication is for re-scoping. For
|
||||
example, if the authentication is for re-scoping, a plugin must append the
|
||||
previous method names into ``method_names``. Also, a plugin may add any
|
||||
additional information into ``extras``. Anything in ``extras`` will be conveyed
|
||||
in the token's ``extras`` field.
|
||||
previous method names into ``method_names``.
|
||||
|
||||
If authentication requires multiple steps, the ``authenticate()`` method must
|
||||
return the payload in the form of a dictionary for the next authentication
|
||||
|
||||
@@ -65,8 +65,7 @@ class Auth(controller.V3Controller):
|
||||
|
||||
try:
|
||||
auth_info = core.AuthInfo.create(auth=auth)
|
||||
auth_context = core.AuthContext(extras={},
|
||||
method_names=[],
|
||||
auth_context = core.AuthContext(method_names=[],
|
||||
bind={})
|
||||
self.authenticate(request, auth_info, auth_context)
|
||||
if auth_context.get('access_token_id'):
|
||||
|
||||
@@ -47,13 +47,10 @@ class AuthMethodHandler(provider_api.ProviderAPIMixin, object):
|
||||
in case authentication is for re-scoping. For example, if the
|
||||
authentication is for re-scoping, plugin must append the previous
|
||||
method names into ``method_names``; NOTE: This behavior is exclusive
|
||||
to the re-scope type action. Also, plugin may add any additional
|
||||
information into ``extras``. Anything in ``extras`` will be conveyed in
|
||||
the token's ``extras`` attribute. Here's an example of
|
||||
``response_data`` on successful authentication::
|
||||
to the re-scope type action. Here's an example of ``response_data`` on
|
||||
successful authentication::
|
||||
|
||||
{
|
||||
"extras": {},
|
||||
"methods": [
|
||||
"password",
|
||||
"token"
|
||||
|
||||
@@ -118,10 +118,6 @@ def token_authenticate(request, token):
|
||||
response_data.setdefault('expires_at', token.expires_at)
|
||||
response_data['audit_id'] = token_audit_id
|
||||
response_data.setdefault('user_id', token.user_id)
|
||||
# TODO(morganfainberg: determine if token 'extras' can be removed
|
||||
# from the response_data
|
||||
# response_data.setdefault('extras', {}).update(
|
||||
# token.get('extras', {}))
|
||||
|
||||
return response_data
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ class TestAuthPlugin(unit.SQLDriverOverrides, unit.TestCase):
|
||||
'test': 'test'}
|
||||
auth_data = {'identity': auth_data}
|
||||
auth_info = auth.core.AuthInfo.create(auth_data)
|
||||
auth_context = auth.core.AuthContext(extras={}, method_names=[])
|
||||
auth_context = auth.core.AuthContext(method_names=[])
|
||||
try:
|
||||
self.api.authenticate(self.make_request(), auth_info, auth_context)
|
||||
except exception.AdditionalAuthRequired as e:
|
||||
@@ -98,7 +98,7 @@ class TestAuthPlugin(unit.SQLDriverOverrides, unit.TestCase):
|
||||
'response': EXPECTED_RESPONSE}
|
||||
auth_data = {'identity': auth_data}
|
||||
auth_info = auth.core.AuthInfo.create(auth_data)
|
||||
auth_context = auth.core.AuthContext(extras={}, method_names=[])
|
||||
auth_context = auth.core.AuthContext(method_names=[])
|
||||
self.api.authenticate(self.make_request(), auth_info, auth_context)
|
||||
self.assertEqual(DEMO_USER_ID, auth_context['user_id'])
|
||||
|
||||
@@ -108,7 +108,7 @@ class TestAuthPlugin(unit.SQLDriverOverrides, unit.TestCase):
|
||||
'response': uuid.uuid4().hex}
|
||||
auth_data = {'identity': auth_data}
|
||||
auth_info = auth.core.AuthInfo.create(auth_data)
|
||||
auth_context = auth.core.AuthContext(extras={}, method_names=[])
|
||||
auth_context = auth.core.AuthContext(method_names=[])
|
||||
self.assertRaises(exception.Unauthorized,
|
||||
self.api.authenticate,
|
||||
self.make_request(),
|
||||
@@ -160,7 +160,6 @@ class TestMapped(unit.TestCase):
|
||||
}
|
||||
auth_info = auth.core.AuthInfo.create(auth_data)
|
||||
auth_context = auth.core.AuthContext(
|
||||
extras={},
|
||||
method_names=[],
|
||||
user_id=uuid.uuid4().hex)
|
||||
self.api.authenticate(request, auth_info, auth_context)
|
||||
@@ -178,7 +177,6 @@ class TestMapped(unit.TestCase):
|
||||
auth_data = {'identity': auth_data}
|
||||
|
||||
auth_context = auth.core.AuthContext(
|
||||
extras={},
|
||||
method_names=[],
|
||||
user_id=uuid.uuid4().hex)
|
||||
|
||||
|
||||
@@ -1235,7 +1235,7 @@ class RestfulTestCase(unit.SQLDriverOverrides, rest.RestfulTestCase,
|
||||
auth_data = self.build_authentication_request(
|
||||
kerberos=kerberos)['auth']
|
||||
auth_info = auth.core.AuthInfo.create(auth_data)
|
||||
auth_context = auth.core.AuthContext(extras={}, method_names=[])
|
||||
auth_context = auth.core.AuthContext(method_names=[])
|
||||
return self.make_request(environ=environment), auth_info, auth_context
|
||||
|
||||
def build_external_auth_environ(self, remote_user, remote_domain=None):
|
||||
|
||||
Reference in New Issue
Block a user