diff --git a/console/src/app/pipes/redirect-pipe/redirect.pipe.ts b/console/src/app/pipes/redirect-pipe/redirect.pipe.ts index 45fc03075..c357d1682 100644 --- a/console/src/app/pipes/redirect-pipe/redirect.pipe.ts +++ b/console/src/app/pipes/redirect-pipe/redirect.pipe.ts @@ -6,32 +6,17 @@ import { Pipe, PipeTransform } from '@angular/core'; }) export class RedirectPipe implements PipeTransform { public transform(uri: string, isNative: boolean): boolean { - if (isNative) { - if ( - uri.startsWith('http://localhost/') || - uri.startsWith('http://localhost:') || - uri.startsWith('http://127.0.0.1') || - uri.startsWith('http://[::1]') || - uri.startsWith('http://[0:0:0:0:0:0:0:1]') || - uri.startsWith('https://localhost/') || - uri.startsWith('https://localhost:') || - uri.startsWith('https://127.0.0.1') || - uri.startsWith('https://[::1]') || - uri.startsWith('https://[0:0:0:0:0:0:0:1]') - ) { - return true; - } - if (!uri.startsWith('https://') && !uri.startsWith('http://')) { - return true; - } else { - return false; - } - } else { - if (uri.startsWith('https://')) { - return true; - } else { - return false; - } + const parsedURI = URL.parse(uri); + if (parsedURI === null) { + return false; } + if (!isNative) { + return parsedURI.protocol === 'https:'; + } + if (parsedURI.protocol !== 'http:' && parsedURI.protocol !== 'https:') { + return true; + } + const hostname = parsedURI.hostname; + return hostname === 'localhost' || hostname === '127.0.0.1' || hostname === '[::1]'; } }