java - 仅允许登录用户下载 servlet

标签 java jsp servlets

我根据@wen在Implementing a simple file download servlet中的回答实现了一个下载servlet

web.xml

<servlet>
     <servlet-name>DownloadServlet</servlet-name>
     <servlet-class>com.myapp.servlet.DownloadServlet</servlet-class>
</servlet>
<servlet-mapping>
     <servlet-name>DownloadServlet</servlet-name>
     <url-pattern>/download</url-pattern>
</servlet-mapping>

下载Servlet.java

public class DownloadServlet extends HttpServlet {


    protected void doGet( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

         String id = request.getParameter("id");

         String fileName = "";
         String fileType = "";

如何防止未登录的人激活下载 servlet。

我有一个 ClientSession 对象,它保存登录的所有详细信息,但我不知道如何从下载 servlet 中访问它。

例如,如果我在请求中放置一个 token ,那么我如何根据 ClientSession 对象验证此 token 。

最佳答案

您应该从 HttpSession 获取客户端 session 。

ClientSession clientSession = (ClientSession) request.getSession().getAttribute("client_session_info");

当然,当您登录时,您必须将 clientSession 存储到 HttpSession 中,如下所示:

session.setAttribute("client_session_info", clientSession);

我不知道你如何登录你的用户,但你应该能够访问http session 对象并将数据存储到其中。

关于java - 仅允许登录用户下载 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43072662/

相关文章:

java - BlazeDS 和 ColdFusion - jRun 内存使用量增加导致 java.lang.OutOfMemoryError : Java heap space

jsp - 包含另一个 JSP 文件

java - 如何将文件夹的详细信息发送到 servlet?

java - 数据源拒绝建立连接java

java - java中的零长度数组

java - 用Java编写的TCP服务器用C编写的客户端接收错误(编码)

java - 在 JSP/Servlet 中创建和处理多个 session

java - 如何使用 Spring Java 在 JSP 中的文本框中保留用户名

java - 如何将数据从 servlet 发布到 Javascript 或如何将上传的字节从 servlet 发布到 HTML

java - 找不到变量 e.getkeycode