2013-04-09 71 views
1

我在控制器類中有簡單的方法。如何通過安全層訪問grails中的web服務

Class TrainingController{ 

    def getTrainingsJson(){ 
      def trainingList = Training.list() 
      println "called====" 
      //render trainingList as JSON 
      render "${params.callback}(${trainingList as JSON})" 
    } 
} 

它獲取的培訓名單,在我的HTML頁面,我有要求如下

<script type="text/javascript"> 
     $(function(){ 

      $.getJSON('http://localhost:8080/training/getTrainingsJson?callback=?',    
       function(data) { 
       console.log("success"); 
       alert(data); 
      }); 

     }); 
    </script> 

的請求僅在登錄後送達。沒有登錄的響應將是登錄頁面的HTML格式。

請求是跨服務器(從PHP到Grails)。 我想確保安全通信必須建立,所以如何在grails中使用spring安全通過json驗證 。

如何確保沒有人可以僞造請求並獲得服務器的響應。

是否需要遵循REST或可以在現有控制器中編寫方法還是需要爲這種請求創建單獨的控制器/服務?

回答

1

如果所有訪問都是通過瀏覽器進行的,那麼spring身份驗證會處理它 - 只需相應地保護url即可。所有請求(包括Ajax)將通過彈簧AUTH

爲了防止窺探考慮實施SSL

春季安全插件docs對保護應用程序的更多信息。特別閱讀有關認證,IP地址限制和會話固定防護