2015-05-09 61 views
3

我正在尋求將一些安全措施添加到我在Grails上編寫的小型服務中:IP限制,強制HTTPS以及更晚的事情。在grails的spring-security-core插件中禁用用戶身份驗證

所以我添加彈簧安全核心依賴

compile 'org.grails.plugins:spring-security-core:2.0-RC4' 

我的build.gradle和這樣的事情

grails.plugin.springsecurity.secureChannel.definition = ['/**': 'REQUIRES_SECURE_CHANNEL'] 
grails.plugin.springsecurity.ipRestrictions = ['/**': ['127.0.0.1', '%MY-OFFICE-IP-HERE%']] 

我Config.groovy中。

服務非常簡單,它只有兩個控制器以JSON格式返回一些數據。但是spring-security-core插件默認添加了用戶認證:登錄頁面,註銷攔截器,拒絕訪問處理器等等。我目前不需要這樣的功能,並且想禁用它。我該怎麼做?

回答

0

只需添加到您的Config.groovy中爲開發環境:

grails.plugin.springsecurity.active = false 
+0

謝謝你的答案。但似乎你的解決方案禁用了整個spring-security-core插件,包括ip限制和安全通道定義。 – user24809

+0

對不起@ user24809,我誤解了你的問題。由於您想禁用身份驗證系統,因此某些用戶嘗試訪問IP以外的內容時,您真的希望擁有什麼? –

+0

很簡單:如果不允許來自request.remoteAddr的IP(不在指定的地址/掩碼列表中),則返回403 HTTP狀態碼。目前我正在使用普通的Grails過濾器,但我想用spring-security-core來完成它。 – user24809

0

所以你說的是你只想IP限制,但沒有作用,保護您的控制器/方法或爲您的應用程序的任何實際的安全因爲它在DMZ中?

然後,你不希望Spring的安全,只需要實現這樣的事情... How do you get Client IP Address in a Grails controller?

過濾器檢測IP和拒絕,如果它不匹配的配置可接受的IP的

+0

我已經完成了,但這是一個臨時解決方案。看來該服務在不久的將來將需要x509認證,所以我不得不使用spring-security-core。 – user24809

+0

是的,然後你想要實現彈簧安全。你要求擁有你的蛋糕並將它吃掉,但你還需要實現角色和安全。這就是爲什麼Spring-security-core是如此出色的一體化解決方案。 – Orubel