我正在研究在Spring 3.2中编写的简单REST API原型。我已经阅读了互联网上的Spring Security文档和许多教程,但对我来说如何保护我的REST API没有任何意义。
我的要求非常简单 - 根据HTTP标头中的一个参数的值,我需要允许或禁止客户端使用特定资源。我有一个可以作为bean注入的服务,这个bean可以为我处理这个任务。我需要知道的是哪里放置这个“check”bean和如何告诉Spring在资源被消耗之前将它用作过滤器(我配置我的应用程序)以编程方式通过Java类,我不使用applicationContext.xml)。
我会很感激一些简单的例子 - Spring配置和过滤器类。
答案 0 :(得分:1)
巴特说,你可以很好地利用拦截器。你可以这样做
@Component
public class SecurityFilter extends HandlerInterceptorAdapter{
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
/*you can do this way. set the response content type as
* 'application/json'.get the PrintWriter from response and print
* the Json object
*/
response.setContentType("application/json");
PrintWriter out = response.getWriter();
/*jsonObject can be either be a String form of json. example:
*"{ key1:'value1', key2: 'value2' }" or JSON object created
*using JSON libraries like json.org or Gson package
*/
out.print(jsonObject);
out.flush();
return false;
}
}
您还必须在弹簧配置文件中进行配置。
<mvc:interceptors>
<mvc:interceptor>
<!-- map the url path to the appropriate filter -->
<mvc:mapping path="/**" />
<bean class="com.keerthi.filter.SecurityFilter" />
</mvc:interceptor>
</mvc:interceptors>
请阅读HandlerInterceptorAdapter API的文档。这将有助于你