2011-11-04 49 views
1

我正在研究一個Grails 2.0.RC1中的項目,我希望能夠將我的域對象的腳手架控制器和視圖保存爲「低級」,開發人員只能訪問仍然修補同時能夠開發視圖和控制器的生產版本(具有類似的名稱,特別是對於控制器)。我想保留它們,所以我可以在更新域圖層時重新生成它們,所以只是移動它們很可能不起作用。爲開發者訪問節省腳手架的最佳方式是什麼?

我希望有一種方法可以做一些UrlMapping的魔法,它可以讓我向「腳本控制器」請求「/ mgr/book」,但是「/ book」會去我的生產控制器。在文檔中,我找不到關於如何爲特定控制器組配置映射的任何內容(沒有通過名稱與$控制器表示法指定每個控制器)。

我的另一個想法是將我的域圖層轉換爲插件,然後創建一個單獨的項目,該項目僅適用於腳手架視圖。在投入生產之前,這將更容易刪除,但看起來更多工作,並提出了在同一個盒子上同時運行兩個grails應用程序的問題。

回答

1

我會提前你去你最後的想法。這也是我常用的方法:

  1. 爲您的域模型和常用服務創建一個可嵌入的插件。這也包括常見的插件,如彈簧安全和東西。這也將減少你的依賴解決時間爲主應用程序順便說一句。
  2. 爲您的腳手架視圖創建可嵌入的插件。將腳手架控制器的模板更改爲需要身份驗證和管理員組。
  3. 您的主應用程序使用兩個插件。

這使您的主應用程序乾淨簡單,您仍然可以根據需要重新生成所有腳手架視圖&控制器。至少Eclipse STS熱部署仍然可行!

但是,還沒有簡單的解決方案來分離您的腳手架控制器URL智能呢。

1

如果您使用的是Spring Security,您應該可以使用InterceptUrlMapRequestMap Instances來保護控制器URL。

如果您的腳手架控制器僅用於腳手架(並且沒有其他操作),那麼您應該能夠使用基本的Secured annotations來保護整個控制器。

然後,您可以使用正常的腳手架,在登錄後進行保護。

其他安全框架可能會提供類似的訪問控制。

相關問題