2016-08-05 8 views
-1

「SPRING MVC」を使用しています。「AccessDeniedHandle」から実装を作成したため、「アクセスが拒否されました」というエラーが発生した場合、ユーザーを前のページにリダイレクトします。AccessDeniedHandleで前のページのURLを取得する方法

Example

私の問題はどのように前のページのリンクを取得できますか?コントローラを使用する必要がありますか? お願いします。

+0

[How to Ask](http://stackoverflow.com/help/how-to-ask)にアクセスしてください。この質問には多くの編集が必要です。 – rmlan

+0

は今すぐ明らかになったと思う@rmlan – Ashile

答えて

-1

私は、コントローラを使用して解決策を見つけましたが、あなたはより良い提案を持っていると思われる場合

春-のsecurity.xml

<security:http...> 
    ... 
    <security:access-denied-handler error-page="/403" /> 
    ... 
</security:http...> 

myController.java

@RequestMapping(value="/403", method=RequestMethod.GET) 
     public void accessDenied(HttpSession session,HttpServletRequest request, HttpServletResponse response, Model model, Authentication auth) { 
      String previousPage = (String) session.getAttribute("previousPage"); 
      if(previousPage.isEmpty()) 
      { 
       if(request.isUserInRole("ROLE_ADMIN")) 
       { 
        try { 
        response.sendRedirect("olx/index"); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
       } 
       else if(request.isUserInRole("ROLE_USER")) 
       { 
        try { 
        response.sendRedirect("me/index"); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
       } 
      } 
      else 
      { 
       try { 
        response.sendRedirect(previousPage); 
       } catch (IOException e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 
      } 

    } 
、それを共有してください

各jsp

<% Object thisPage = request.getAttribute("javax.servlet.forward.request_uri"); 
session.setAttribute("previousPage",thisPage); %> 
関連する問題