是否有Wakanda方式:
答案 0 :(得分:1)
我将逐一回答问题:
1-
这应该使用您的操作系统防火墙(例如,如果你在Linux上使用iptables)
2-
如果使用防火墙限制对应用的访问,则可能不需要执行此操作。但如果你真的需要:
今天没有好办法,因为你无法禁用authentication REST API。我建议的解决方法如下(但如果您使用的是活动目录,我认为它不会起作用):
为身份验证/login
添加自定义请求处理程序,您可以执行以下操作:
function login(request,response){
var ip = request.remoteAddress;
if( ! isIPAuthorized(ip)){
response.statusCode = 403;
return;
}
sessionStorage["login-request"] = true;
/*
* Your login code here
* For instance you can use loginByPassword, createUserSession ..
*/
sessionStorage["login-request"] = false;
}
在Login Listener
内,您可以通过查看sessionStorage
来检查登录请求是否来自您的自定义登录功能:
if(!sessionStorage["login-request"]){
return {
"error" : 1024,
"errorMessage" : "Unautorized Login Attempt"
}
}
这样,任何使用未检查IP的默认REST身份验证API的登录尝试都将被拒绝。
答案 1 :(得分:0)
对于第一个问题,在项目设置文件(Settings.waSettings)中启用Cross-origin resource sharing,您需要定义允许外部页面向其发送数据请求的域名或IP地址列表通过CORS的Wakanda服务器。可以添加多个域属性来创建白名单。
答案 2 :(得分:0)
将任何应用程序公开给特定范围的IP地址(同时阻止所有其他)的最佳方法是使用firewall;是基于软件的防火墙(例如iptables还是windows-firewall)还是基于硬件的防火墙(例如 Cisco ASA )。使用防火墙可以完全减轻对问题第二部分的需求。