Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Защита ресурсов на веб сервере


Автор: MAPCUAHUH 6.7.2006, 00:21
Здраствуйте,
есть такая проблема есть сайт на томкате.
на странице есть форма аутентификации. при успешном вводе в сессию кидается обект User сигнализирующий о входе в систему.

Как на сервере положить фаил (картинку мп3 итд) чтобы они были доступны только тем кто зарегестрирован и вошел в систему.

Я придумал два варианта:
1)
создать jsp для каждого защищаемого фаила:
Код

<% if(session.getAttribure("user")==null)
{
return;
}%>
//содержимое защищаемого фаила




2)написать менеджер ресурсов:

Код

class ResourceRetriever extends HttpServlet
{
      public void doGet(HttpServletRequest request,HttpServletResponce responce)
     {
          Session session=request.getSession();
          if(session.getAttribute("user")==null)
          {
               return;
          }
         
          String path="c:\\my_secure_files\\";
          String fileID=request.getParameter("path");
          if(!checkCorrectPath(fileID))
          {
                return;
          }

          byte[] buffer=new byte[4096];
          FileInputStream fs=new FileInputStream(path+fileID);
          OutputStream os=responce.getOutputStream();
          while(fs.read(buffer)>=0)
          {
                os.write(buffer);
          }
          fs.close();
     }

}


использование:
<img src="/rr?path=pivture.jpg">

но мне кажется это не совсем верный подход.
Пожалуйста, посоветуйте как сделать это правильо.
 

Автор: tux 7.7.2006, 08:08
Можно повесить на ссылки, по которым у тебя лежат файлы, фильтр. В фильтре проверяешь загогинился ли пользователь и если нет, то редиректишь на страницу ошибки или еще куда-то. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)