簡體   English   中英

GWT請求工廠的ACL

[英]ACLs for GWT Request Factory

我想將ACL應用於通過我的請求工廠的所有請求。 因此,我重寫了RequestFactoryServlet及其doPost()-Methode。 現在,我可以從會話中獲取用戶,檢查其是否已登錄等。 但是我也想檢查他的權限,只允許用戶調用特定的方法。 因此,例如,僅允許管理員用戶調用將數據寫入數據庫的方法。

現在我的問題是:

  1. 重寫ReqeustFactoryServlet的方法是否正確?
  2. 我如何找出在RequestFactoryServerlet中調用了哪種方法? 有一種方法可以從請求中讀取內容: String jsonRequestString = RPCServletUtils.readContent(request, JSON_CONTENT_TYPE, JSON_CHARSET); 但是它只提供了一個非常隱秘的字符串。

我的代碼如下所示:

public class MyRequestFactoryServlet extends RequestFactoryServlet {

    @Override
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws IOException, ServletException {

        HttpSession session = getThreadLocalRequest().getSession();
        User user = (User)session.getAttribute("user");

        // check rights for user and only allow some methods

        super.doPost(request, response);
    }
}

解決方案是使用ServiceLayerDecorator創建標准RequestFactoryServlet

ServiceLayerDecorator ,您可以覆蓋invoke方法。

http://google-web-toolkit.googlecode.com/svn/javadoc/2.2/com/google/gwt/requestfactory/server/ServiceLayerDecorator.html

但是,我希望直接在業務對象中執行ACL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM