Revert the cookiePath to include the handler suffix

Signed-off-by: Marcus Eide <eide@spotify.com>
This commit is contained in:
Marcus Eide
2022-01-24 14:24:39 +01:00
parent 71a2fbaa58
commit 3b6e41009b
3 changed files with 5 additions and 13 deletions
+1 -9
View File
@@ -2,12 +2,4 @@
'@backstage/plugin-auth-backend': patch
---
Supports callbackUrls when setting cookie configuration.
Cookie paths will no longer be scoped to include the handler of the provider:
```diff
cookie = {
- path=`${pathname}/${provider}/handler`
+ path=`${pathname}/${provider}`
}
```
Running the `auth-backend` on multiple domains, perhaps different domains depending on the `auth.environment`, was previously not possible as the `domain` name of the cookie was taken from `backend.baseUrl`. This prevented any cookies to be set in the start of the auth flow as the domain of the cookie would not match the domain of the callbackUrl configured in the OAuth app. This change checks if a provider supports custom `callbackUrl`'s to be configured in the application configuration and uses the domain from that, allowing the `domain`'s to match and the cookie to be set.
@@ -383,7 +383,7 @@ describe('OAuthAdapter', () => {
expect.any(String),
expect.objectContaining({
domain: 'domain.org',
path: '/auth/test-provider',
path: '/auth/test-provider/handler',
secure: false,
}),
);
@@ -423,7 +423,7 @@ describe('OAuthAdapter', () => {
expect.any(String),
expect.objectContaining({
domain: 'authdomain.org',
path: '/auth/test-provider',
path: '/auth/test-provider/handler',
secure: true,
}),
);
@@ -270,7 +270,7 @@ export class OAuthAdapter implements AuthProviderRouteHandlers {
secure: this.options.secure,
sameSite: 'lax',
domain: this.options.cookieDomain,
path: this.options.cookiePath,
path: `${this.options.cookiePath}/handler`,
httpOnly: true,
});
};
@@ -281,7 +281,7 @@ export class OAuthAdapter implements AuthProviderRouteHandlers {
secure: this.options.secure,
sameSite: 'lax',
domain: this.options.cookieDomain,
path: this.options.cookiePath,
path: `${this.options.cookiePath}/handler`,
httpOnly: true,
});
};