嗨,我正在使用Apache Tomcat。我有一个用于输入用户名和密码的jsp文件和一个用于身份验证的java bean。用户通过身份验证后,我用用户名创建一个会话变量,并使用“ authenticated”名称创建另一个变量,其值为true。我只想在会话变量“ authentication” == true之后才允许文件下载;我也想在下载之前进行一些处理(注册下载的用户名..)
问题:可以说我在目录“ / downloads”中有文件“ download.bin”,因此直接访问URL“ downloads / download.bin”的任何人都可以获取该文件。
1.我可以禁止直接下载文件吗?2.仅在会话认证后才启用文件下载。
谢谢。
您可以防止直接下载文件。一种常用的方法是将/downloads文件夹放入WEB- INF。创建一个Servlet,检查您的身份验证标志,然后将文件发送给用户。用户请求可能类似于以下内容:
/downloads
WEB- INF
http://localhost/myApp/downloadServlet?filename=download.bin
由于WEB-INF中的内容不是公开可用的,因此您可以在此处隐藏文件。