几个星期以来,我一直在努力将Siteminder身份验证与我的nodejs/角4 Web应用程序“集成”。
在服务器端(节点),我有:
app.get('*', function(req, res) {
//read Siteminder headers
if (authenticated) {
res.sendFile(path.join(__dirname, 'dist/index.html'));
}else{
res.sendFile(path.join(__dirname, 'dist/accessDenied.html'));
}
}
Angular路由器处理其余的。
这适用于初始权限改造(检索数据的api和服务在不同的机器上,这只是一个前端/客户端应用程序)。
然而,现在用户想要角色,比如编辑/视图,我需要找到一种方法将这些角色从Siteminder标头传递给角前端来处理权限。我玩过拦截器,但运气不好,似乎只能处理从角应用程序内部创建的请求。我还尝试了一些关于Siteminder/node主题中提出的相关问题的建议 /angular但仍然没有运气。
我对节点/角度很陌生,谢谢你的耐心和帮助。
最后我自己找到了答案,在下面张贴了详细信息,以防有人感兴趣。决定使用Angular universal express引擎,如下示例所示。
本质上,它允许Angular在服务器端运行,在服务器端可以访问请求头,然后可以将它们注入到客户端使用。
在我的main.server.ts:
app.engine('html', (_, options, callback) => {
let engine = ngExpressEngine({
bootstrap: ServerAppModule,
providers: [ { provide: 'headers', useFactory: () => options.req.headers } ]
});
engine(_, options, callback)
});
app.set('view engine', 'html');
app.set('views', 'dist');
app.use('/', express.static('dist', {index: false}));
ROUTES.forEach(route => {
app.get(route, (req, res) => {
console.log('Yaaay Siteminder headers:');
console.dir(req.headers);
res.render('index', {
req: req,
res: res
});
});
});
然后在我的应用程序中。组成部分ts:
export class AppComponent implements OnInit {
constructor(private cache: TransferState, private injector: Injector, @Inject(PLATFORM_ID) private platformId: Object) {}
ngOnInit() {
if (isPlatformServer(this.platformId))
{
this.cache.set('user_role', this.injector.get('headers').sm_role);
}
}
}
之后,我可以在我的任何组件中注入私有缓存:TransferState,并且可以在任何地方使用头,以进行微调访问。
等等瞧。
如何在JAX-RS中实现WriterInterceptor接口时访问请求头? 完整的代码如下:
问题内容: 我遇到这个错误。而且我不知道如何处理。 无法修改标头信息-已发送的标头(输出从/home/ben213/public_html/wp- includes/pluggable.php上的/home/ben213/public_html/wp- content/themes/Bendaggers/functions.php:9开始) 934行 我的Functions.php文件第9行是:
我正在与Django合作一个项目,该项目通过React前端上的Django Rest框架通过API提供数据。可浏览的API工作正常,但是,react前端在控制台中给出了一个错误。 我已成功安装django cors标头。 CORS策略阻止从http://127.0.0.1:8000/products/http://localhost:3000获取数据:请求的资源上不存在访问控制允许来源标头。如果不
我们什么时候应该在HttpRequest estMessage对象中使用标头而不是HttpClient中的标头?? 我们需要添加授权(总是在变化)和一些自定义标头(总是在变化) 问题 > 首选哪种方法 我是否应该向HttpClient添加公共头(所有请求都相同),并向HttpRequestMessage对象添加基于请求的头??
如何解决以下错误; 加载资源失败:服务器响应状态为500(内部服务器错误)cdn。安普项目。org/v0。js:68响应必须包含AMP访问控制允许源代码源标题Yd@cdn。安普项目。org/v0。js:68 cdn。安普项目。org/v0。js:68表单提交失败:错误:响应必须包含AMP Access Control Allow Source Origin标头 报道 遵循CORS上AMP G
我正在开发一个带有jhipster V4.5.6的Spring启动应用程序。但无法配置 CORS。 下面是我的application-dev.yml文件: WebConfigurer.java如下: 和安全配置。java文件如下所示: 现在,我可以使用 GET 请求。但是当我使用POST时,如下所示: 我得到以下错误: XMLHttpRequest 无法加载 http://localhost:80