2013-09-30 85 views
0

我有一個servlet,說Servlet A需要調度控制到另一個Servlet B,(Servlet B獲取控制派遣去執行基於在Servlet A中完成的條件檢查的刪除操作)。我如何確保只有Servlet A可以將請求轉發到Servlet B?我不希望用戶弄清楚Servlet B用於用戶刪除並直接調用它。如何讓普通用戶無法訪問servlet,但可以訪問其他servlet?

當我想到它的時候,我可以看到你們中的一些人可能會說,爲什麼Servlet B只是刪除它,爲什麼不能在Servlet A中進行條件檢查,然後根據什麼情況評估。那麼,這個刪除操作可能會在未來公開,它可能會有基於角色的授權。目前,我只是想讓它存在,但不能讓應用程序的用戶直接使用。

+1

認證和授權。 –

+0

沒有其他選擇嗎? – Jay

+0

認證和授權不一定很難。只需傳遞(請求屬性)第二個servlet將接受或拒絕的令牌或標記(例如缺少令牌)即可。 –

回答

2

爲什麼不只是不使用B的servlet,而只是在刪除對象的對象中有一個方法,但不能公開訪問?然後,如果您決定稍後將其公開,則可以實施一個直接調用它的servlet。無論如何,您不應該在servlet中擁有業務邏輯,它只是表示層的一部分,對吧?