2013-01-12 22 views
0

假设您有一张图像,您只希望登录您的网站的用户能够看到。保护我免受未登录用户的最佳方式是什么?一种可能的方法是让页面通过get或post参数传递图像名称,并且通过从磁盘读取图像并根据用户是否登录会话回写响应来返回图像。是/有更好的方法更有效地实现资源的安全吗?保护资源,例如servlet中的图像

回答

1

有几个简单的方法你可以通过servlet filters或简单的servlet来服务你的资源。

个人如果主体已设置我会检查是这样,那么你知道用户是authenitcated

Principal principal = request.getUserPrincipal(); 
    if (principal == null) { 
     return null; 
    } 

如果没有本金,你知道用户没有通过验证,你可以返回403种状态,空白图像或任何你喜欢的东西。

2

使用您的会话。当用户登录时,您将图像加载到您的页面。

0

如果要保护图像文件的URL,请在代码中设置有关其访问权限的一些规则。我认为一个更好的选择是使用一些安全框架。有一些安全平台如Spring Security根据用户身份验证状态,url-role组合和acl等提供非常全面的访问规则。