From e08dcd798af28306ae1ab3a6afdaf8b2892ffaea Mon Sep 17 00:00:00 2001 From: Hiroki Terashima Date: Wed, 17 Dec 2025 14:30:11 -0800 Subject: [PATCH 1/4] Change Google login url to map to spring's default oauth auth endpoint --- src/app/login/login-home/login-home.component.ts | 2 +- .../register-google-user-already-exists.component.ts | 2 +- src/app/register/register-user-complete.component.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/app/login/login-home/login-home.component.ts b/src/app/login/login-home/login-home.component.ts index 6412e298f5a..0aec72e69cd 100644 --- a/src/app/login/login-home/login-home.component.ts +++ b/src/app/login/login-home/login-home.component.ts @@ -121,7 +121,7 @@ export class LoginHomeComponent implements OnInit { getRedirectUrl(social: string): string { let redirectUrl = ''; if (social === 'google') { - redirectUrl = `${this.configService.getContextPath()}/api/google-login?redirectUrl=${this.userService.getRedirectUrl()}`; + redirectUrl = `${this.configService.getContextPath()}/oauth2/authorization/google?redirectUrl=${this.userService.getRedirectUrl()}`; } else if (social === 'microsoft') { redirectUrl = `/api/microsoft-login?redirectUrl=/`; } else { diff --git a/src/app/register/register-google-user-already-exists/register-google-user-already-exists.component.ts b/src/app/register/register-google-user-already-exists/register-google-user-already-exists.component.ts index 9ecd557d174..ebbb2768037 100644 --- a/src/app/register/register-google-user-already-exists/register-google-user-already-exists.component.ts +++ b/src/app/register/register-google-user-already-exists/register-google-user-already-exists.component.ts @@ -13,6 +13,6 @@ export class RegisterGoogleUserAlreadyExistsComponent { constructor(private configService: ConfigService) {} public socialSignIn(socialPlatform: string) { - window.location.href = `${this.configService.getContextPath()}/api/google-login`; + window.location.href = `${this.configService.getContextPath()}/oauth2/authorization/google`; } } diff --git a/src/app/register/register-user-complete.component.ts b/src/app/register/register-user-complete.component.ts index 18b8472f18a..ea8ec962f7d 100644 --- a/src/app/register/register-user-complete.component.ts +++ b/src/app/register/register-user-complete.component.ts @@ -4,7 +4,7 @@ import { ConfigService } from '../services/config.service'; @Directive() export abstract class RegisterUserCompleteComponent implements OnInit { - protected googleLogInURL = `${this.configService.getContextPath()}/api/google-login`; + protected googleLogInURL = `${this.configService.getContextPath()}/oauth2/authorization/google`; protected microsoftLogInURL = `${this.configService.getContextPath()}/api/microsoft-login?redirectUrl=/`; protected socialAccount: boolean; protected isUsingGoogleId: boolean; From a0739e16b1d96f43bbef7d747a6332b2872ac9a5 Mon Sep 17 00:00:00 2001 From: Jonathan Lim-Breitbart Date: Mon, 5 Jan 2026 09:47:52 -0800 Subject: [PATCH 2/4] Fix test --- src/app/login/login-home/login-home.component.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/login/login-home/login-home.component.spec.ts b/src/app/login/login-home/login-home.component.spec.ts index 5e1870b21e1..f26b5a90126 100644 --- a/src/app/login/login-home/login-home.component.spec.ts +++ b/src/app/login/login-home/login-home.component.spec.ts @@ -57,7 +57,7 @@ function getRedirectUrl() { describe('getRedirectUrl()', () => { it('should add redirectUrl to Google login url', () => { expect(component.getRedirectUrl('google')).toEqual( - `${contextPath}/api/google-login?redirectUrl=${redirectUrl}` + `${contextPath}/oauth2/authorization/google?redirectUrl=${redirectUrl}` ); }); }); From 1c1de6eb4dd70de6e4f9b0e28f1848013a2c3577 Mon Sep 17 00:00:00 2001 From: Hiroki Terashima Date: Wed, 26 Aug 2026 14:42:57 -0700 Subject: [PATCH 3/4] Got OAuth with Microsoft working again. --- src/app/login/login-home/login-home.component.ts | 4 ++-- src/app/register/abstract-register-user.component.ts | 2 +- .../register-microsoft-user-already-exists.component.ts | 2 +- src/app/register/register-user-complete.component.ts | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/app/login/login-home/login-home.component.ts b/src/app/login/login-home/login-home.component.ts index 0aec72e69cd..a285851647b 100644 --- a/src/app/login/login-home/login-home.component.ts +++ b/src/app/login/login-home/login-home.component.ts @@ -121,9 +121,9 @@ export class LoginHomeComponent implements OnInit { getRedirectUrl(social: string): string { let redirectUrl = ''; if (social === 'google') { - redirectUrl = `${this.configService.getContextPath()}/oauth2/authorization/google?redirectUrl=${this.userService.getRedirectUrl()}`; + redirectUrl = `/oauth2/authorization/google?redirectUrl=${this.userService.getRedirectUrl()}`; } else if (social === 'microsoft') { - redirectUrl = `/api/microsoft-login?redirectUrl=/`; + redirectUrl = `/oauth2/authorization/microsoft?redirectUrl=${this.userService.getRedirectUrl()}`; } else { redirectUrl = this.userService.getRedirectUrl(); } diff --git a/src/app/register/abstract-register-user.component.ts b/src/app/register/abstract-register-user.component.ts index dd03d70719c..af1df1ec0cf 100644 --- a/src/app/register/abstract-register-user.component.ts +++ b/src/app/register/abstract-register-user.component.ts @@ -44,7 +44,7 @@ export abstract class AbstractRegisterUserComponent implements OnInit { } protected microsoftSignIn(): void { - window.location.href = `/api/microsoft-login?redirectUrl=${this.joinFormPath}`; + window.location.href = `/oauth2/authorization/microsoft?redirectUrl=${this.joinFormPath}`; } protected abstract getFormParams(): any; diff --git a/src/app/register/register-microsoft-user-already-exists/register-microsoft-user-already-exists.component.ts b/src/app/register/register-microsoft-user-already-exists/register-microsoft-user-already-exists.component.ts index 2d060cca007..452d3488d94 100644 --- a/src/app/register/register-microsoft-user-already-exists/register-microsoft-user-already-exists.component.ts +++ b/src/app/register/register-microsoft-user-already-exists/register-microsoft-user-already-exists.component.ts @@ -8,6 +8,6 @@ import { MatButton } from '@angular/material/button'; }) export class RegisterMicrosoftUserAlreadyExistsComponent { protected login(): void { - window.location.href = `/api/microsoft-login?redirectUrl=/`; + window.location.href = `/oauth2/authorization/microsoft`; } } diff --git a/src/app/register/register-user-complete.component.ts b/src/app/register/register-user-complete.component.ts index ea8ec962f7d..ff2802a4859 100644 --- a/src/app/register/register-user-complete.component.ts +++ b/src/app/register/register-user-complete.component.ts @@ -5,7 +5,7 @@ import { ConfigService } from '../services/config.service'; @Directive() export abstract class RegisterUserCompleteComponent implements OnInit { protected googleLogInURL = `${this.configService.getContextPath()}/oauth2/authorization/google`; - protected microsoftLogInURL = `${this.configService.getContextPath()}/api/microsoft-login?redirectUrl=/`; + protected microsoftLogInURL = `${this.configService.getContextPath()}/oauth2/authorization/microsoft`; protected socialAccount: boolean; protected isUsingGoogleId: boolean; protected isUsingMicrosoftId: boolean; From 1d273a0a5f615620595ce067fd1d889c54705c95 Mon Sep 17 00:00:00 2001 From: Hiroki Terashima Date: Wed, 26 Aug 2026 14:43:09 -0700 Subject: [PATCH 4/4] updated package-lock.json --- package-lock.json | 173 ---------------------------------------------- 1 file changed, 173 deletions(-) diff --git a/package-lock.json b/package-lock.json index 229bb639888..433156aa4ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3873,34 +3873,6 @@ "node": ">=22.12.0" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, "node_modules/@discoveryjs/json-ext": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", @@ -8658,42 +8630,6 @@ } } }, - "node_modules/@tsconfig/node10": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz", - "integrity": "sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/@tufjs/canonical-json": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", @@ -9431,36 +9367,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/acorn-walk": { - "version": "8.3.5", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", - "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "acorn": "^8.11.0" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk/node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/adjust-sourcemap-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", @@ -12291,15 +12197,6 @@ "jiti": "lib/jiti-cli.mjs" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -16167,21 +16064,6 @@ "postcss": "^8.0.0" } }, - "node_modules/gulp-postcss/node_modules/acorn": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/gulp-postcss/node_modules/postcss-load-config": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", @@ -16212,52 +16094,6 @@ } } }, - "node_modules/gulp-postcss/node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, "node_modules/gulp-postcss/node_modules/yaml": { "version": "1.10.3", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", @@ -30494,15 +30330,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, "node_modules/v8flags": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz",