我正在使用 rest web-service 来获取文件路径。这里我使用安全上下文来提供一些额外的安全性。我使用了关于登录用户的验证必须与 Web 服务 URL(安全检查)中指定的用户名相同。
但我有一种特殊情况,我有一个用户用于从服务器获取特殊文件路径。如果我从 web 服务 URL 传递这个用户,它会被安全上下文验证捕获,因为登录用户和 URL 指定的用户不同。
因此,还有其他方法可以将特殊用户排除在安全检查之外。我可以在 web.xml 中指定一些配置来解决这个问题吗?
例如
condition 1
logged-in user - xyz
web-service URL - 192.168.0.132/download.ws/xyz/fileid
passed in security checked.
和
condition 2
logged-in user - xyz
abc is valid and authorized user.
web-service URL - 192.168.0.132/download.ws/abc/fileid
failed in security checked.
我想让它在没有的情况下通过,当来自 URL 的用户是 abc 时,然后允许它进行安全检查。
这是用于检查有效用户的网络服务代码
public String getCallerId(SecurityContext sc) {
// we always create a GenericPrincipal object in AuthService
GenericPrincipal userPrincipal = (GenericPrincipal) sc.getUserPrincipal();
String szUserEmailID= userPrincipal.getName();
return szUserEmailID;
}
public boolean authorizeRequest(SecurityContext osc, String szResourceID, String reqType) {
if( getCallerId(osc).equalsIgnoreCase(szResourceID)) // check for logged-in user and user specified in web-service url
return true;
return false;
}