John Cowen 78e9c0d2d9
ui: Ensure the partition is passed through to the request for the SSO auth URL (#11979)
* Make sure the mocks reflect the requested partition/namespace

* Ensure partition is passed through to the HTTP adapter

* Pass AuthMethod object through to TokenSource in order to use Partition

* Change up docs and add potential improvements for future

* Pass the query partition back onto the response

* Make sure the OIDC callback mock returns a Partition

* Enable OIDC provider mock overwriting during acceptance testing

* Make sure we can enable partitions and SSO post bootup only required

...for now

* Wire up oidc provider mocking

* Add SSO full auth flow acceptance tests
2022-01-11 11:02:46 +00:00

33 lines
985 B
JavaScript

import Serializer from './application';
import { PRIMARY_KEY, SLUG_KEY } from 'consul-ui/models/oidc-provider';
export default class OidcSerializer extends Serializer {
primaryKey = PRIMARY_KEY;
slugKey = SLUG_KEY;
respondForAuthorize(respond, serialized, data) {
// we avoid the parent serializer here as it tries to create a fingerprint
// for an 'action' request but we still need to pass the headers through
return respond((headers, body) => {
return this.attachHeaders(headers, body, data);
});
}
respondForQueryRecord(respond, query) {
// add the name and nspace here so we can merge this
// TODO: Look to see if we always want the merging functionality
return super.respondForQueryRecord(
cb =>
respond((headers, body) =>
cb(headers, {
Name: query.id,
Namespace: query.ns,
Partition: query.partition,
...body,
})
),
query
);
}
}