2017-03-28 5 views
0

にログインしているユーザーのために私はImplementing a simple file download 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 = ""; 

でWENの答え@に基づいて、ダウンロードサーブレットを実装しましたログインしていない人がダウンロードサーブレットを起動できないようにすることはできますか?

私はログインのすべての詳細を保持するClientSessionオブジェクトを持っていますが、ダウンロードサーブレット内からアクセスする方法はわかりません。

たとえば、リクエストにトークンを入れた場合、ClientSessionオブジェクトに対してこのトークンをどのように検証できますか。

+0

'ClientSession'は' HttpSession'の中に保存されていますか?あなたは 'request.getSession(false)'でアクセスできるものを知っていますか? – Kayaman

+0

@Kayaman - あなたはそうだ、私はこれを逃した。 – gordon613

答えて

1

クライアントセッションはHttpSessionから取得する必要があります。私はあなたのユーザーをログイン方法を知りませんが、あなたは、HTTPにアクセスすることができるはず

session.setAttribute("client_session_info", clientSession); 

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

は、当然のことながら、あなたがあなたの中にログインしたときに、このようにHttpSessionにあなたのClientSessionのを記憶しなければなりませんセッションオブジェクトを作成し、データをそこに格納します。