角度:特定模块的自定义下载网址

时间:2020-06-29 15:25:24

标签: angular angular9

使用最新的Angular如何做到这一点,欢迎创意。

包含以下模块的Angular项目,这些模块是延迟加载的(为了简洁起见,限制为两个模块,但可能还有更多模块):

  • UsersModule
  • AdminModule

对于AdminModule,我想应用额外的安全性,主要是我想对其进行IP保护。给出的体系结构设计(特定于这种情况)意味着它需要从另一台服务器(与其他模块不同的主机)提供服务。

所以基本上这意味着:

  • UsersModule-主机A(向所有人开放)
  • AdminModule-主机B(受IP保护)

在这种情况下,如何修改AdminModule特定于Angular的下载URL?

有没有办法拦截Angular使用的下载URL并对其进行修改,或者在Angular中的某个地方设置要使用的特定下载URL?

注意:AdminModule已经被延迟加载,仅适用于管理员。因此,如果您的建议是有条件地加载它,那么已经完成了。

注意服务器端AdminModule进行的操作具有IP保护等额外的安全性,因此,如果您的建议是已经完成,则此问题仅用于模块客户端的下载。

更新0

注意在给定的设计下,无法使用代理/服务器端解决方案来拦截请求并重写请求。问题是关于如何在客户端实现它。

更新1

似乎可以创建一个自定义ResourceLoader,然后将其提供给Angular,以覆盖默认实现。

例如:

const providers = [{provide: ResourceLoader, useClass: MyResourceLoaderImpl}];
platformBrowserDynamic().bootstrapModule(AppModule, {providers});

Here是ResourceLoader植入的示例。

但是,在我的应用程序中尝试不起作用。但是,似乎应该,我有什么遗漏吗?

0 个答案:

没有答案