2009-08-28 115 views

回答

14

Therea兩種基本策略:

  1. 確保入口點;
  2. 保護遠程服務。

安全的入口點

最簡單的方法是限制訪問使用常規的Web應用安全工具中的HTML/JS GWT通過生成的文件:

  • 春季安全;
  • web.xml約束。

這可以讓你有一個例如AdminEntryPointUserEntryPoint

安全遠程服務

如果上述解決方案不夠,可以深入挖掘。我在Spring Security中這樣做了。我還沒有找到將Spring Security與GWT集成的100%乾淨方式,所以我添加了一些膠水。簡而言之:

  • 創建了一個註釋@AllowedRoles,它枚舉允許訪問該服務方法的用戶角色;
  • 創建了一個UserDetailsService它允許檢查當前用戶(有關詳細信息,請參閱the SecurityContextHolder javadoc);
  • 創建了一個Spring方面,該方面匹配所有註解前述註解的方法。它使用該服務來檢索當前用戶的角色並拋出一個檢查的異常來表示非法訪問;
  • 修改了所有服務方法來拋出安全異常。
+2

羅伯特,你能給我提供的方面的示例代碼? (這是我被困住的地方) – 2011-06-29 14:22:46