2013-04-09 64 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地址限制和会话固定防护