This commit is contained in:
@@ -4,14 +4,31 @@ import {
|
||||
|
||||
const isAbsoluteHttpUrl = (url: string) => /^https?:\/\//i.test(url)
|
||||
|
||||
const defaultSameOriginAssetHosts = [
|
||||
['1', '92', '206', '90'].join('.')
|
||||
]
|
||||
|
||||
const defaultLegacyAudioHosts = [
|
||||
['47', '120', '48', '148'].join('.')
|
||||
]
|
||||
|
||||
const configuredSameOriginAssetHosts = () => [
|
||||
dataSourceConfig.publicSameOriginAssetHost,
|
||||
...defaultSameOriginAssetHosts
|
||||
].filter(Boolean)
|
||||
|
||||
const configuredLegacyAudioHosts = () => [
|
||||
dataSourceConfig.publicLegacyAudioHost,
|
||||
...defaultLegacyAudioHosts
|
||||
].filter(Boolean)
|
||||
|
||||
export const normalizeSameOriginPublicUrl = (url: string | null | undefined) => {
|
||||
const value = url?.trim()
|
||||
if (!value || !isAbsoluteHttpUrl(value)) return value || ''
|
||||
|
||||
try {
|
||||
const parsed = new URL(value)
|
||||
const isSameServer = Boolean(dataSourceConfig.publicSameOriginAssetHost)
|
||||
&& parsed.hostname === dataSourceConfig.publicSameOriginAssetHost
|
||||
const isSameServer = configuredSameOriginAssetHosts().includes(parsed.hostname)
|
||||
|
||||
if (
|
||||
isSameServer
|
||||
@@ -33,8 +50,7 @@ export const normalizeSameOriginPublicUrl = (url: string | null | undefined) =>
|
||||
}
|
||||
|
||||
if (
|
||||
dataSourceConfig.publicLegacyAudioHost
|
||||
&& parsed.hostname === dataSourceConfig.publicLegacyAudioHost
|
||||
configuredLegacyAudioHosts().includes(parsed.hostname)
|
||||
&& parsed.port === '19000'
|
||||
&& parsed.pathname.startsWith('/nhm/audio/')
|
||||
) {
|
||||
|
||||
Reference in New Issue
Block a user