仅允许已登录的用户下载servlet

时间:2017-03-28 14:43:52

标签: java jsp servlets

我在Implementing a simple file download servlet

中基于@wen的答案实现了一个下载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>

DownloadServlet.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中访问它。

例如,如果我在请求中放置一个令牌,那么我如何针对ClientSession对象验证此令牌。

1 个答案:

答案 0 :(得分:1)

您应该从HttpSession获取客户端会话。

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

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

session.setAttribute("client_session_info", clientSession);

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