Skip to content

Commit

Permalink
Fixes saml login flow to work with anonymous auth (#1839)
Browse files Browse the repository at this point in the history
* Fixes anonymous auth flow to work with SAML

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Adds hardcoded credentials for anonymous user

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Updates basic auth header to be a config constant

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Removes unneeded usage of anonymous auth header constant

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Updates logic to display anonymous auth login button

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Adds test to check whether anonymous auth login button is displayed correctly

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Fixes integrationtests

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Adds integration tests for anonymous auth login with basic authorization header

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Generates random password for anonymous user

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Fixes lint errors

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Adds saml auth header to differentiate saml requests

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Fixes linter errors

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Fixes basic auth tests

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Removes console loggers

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Fixes lint error

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Addresses feedback

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Resolves #1840

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Replace magic value with constant

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Renames query param and removes unused variables

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Uses enum instead of magic constant

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Extracts template function to a separate util file

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Renames test

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Removes unnecessary modifications required to solve this bug

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Fixes import

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Removes unused param

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Removes unused method param

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

* Removes incorrect method param

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>

---------

Signed-off-by: Darshit Chanpura <dchanp@amazon.com>
(cherry picked from commit 681d1b1)
  • Loading branch information
DarshitChanpura authored and github-actions[bot] committed Apr 12, 2024
1 parent 46dc000 commit 8c8cef4
Show file tree
Hide file tree
Showing 10 changed files with 517 additions and 42 deletions.
1 change: 1 addition & 0 deletions common/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ export const OPENID_AUTH_LOGIN_WITH_FRAGMENT = '/auth/openid/captureUrlFragment'
export const SAML_AUTH_LOGIN = '/auth/saml/login';
export const SAML_AUTH_LOGIN_WITH_FRAGMENT = '/auth/saml/captureUrlFragment';
export const ANONYMOUS_AUTH_LOGIN = '/auth/anonymous';
export const AUTH_TYPE_PARAM = 'auth_type';

export const OPENID_AUTH_LOGOUT = '/auth/openid/logout';
export const SAML_AUTH_LOGOUT = '/auth/saml/logout';
Expand Down
14 changes: 7 additions & 7 deletions public/apps/login/login-page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -231,14 +231,14 @@ export function LoginPage(props: LoginPageDeps) {
</EuiFormRow>
);

if (authOpts.length > 1) {
if (props.config.auth.anonymous_auth_enabled) {
const anonymousConfig = props.config.ui[AuthType.ANONYMOUS].login;
formBody.push(
renderLoginButton(AuthType.ANONYMOUS, ANONYMOUS_AUTH_LOGIN, anonymousConfig)
);
}
if (props.config.auth.anonymous_auth_enabled) {
const anonymousConfig = props.config.ui[AuthType.ANONYMOUS].login;
formBody.push(
renderLoginButton(AuthType.ANONYMOUS, ANONYMOUS_AUTH_LOGIN, anonymousConfig)
);
}

if (authOpts.length > 1) {
formBody.push(<EuiSpacer size="xs" />);
formBody.push(<EuiHorizontalRule size="full" margin="xl" />);
formBody.push(<EuiSpacer size="xs" />);
Expand Down
Loading

0 comments on commit 8c8cef4

Please sign in to comment.