我正在开发一个基于Java EE的Web应用程序,它由Jersey RestFul Webservices组成。 是否有可能知道泽西RestFul Web服务的请求来自何处
1.请求来自Web服务客户端工具(例如:Google Chromes Rest Client或任何此类工具)
2或请求来自登录用户。
在我的服务课程中,我保持这种状态。
//此条件适用于Web服务客户端工具。
HttpSession httpsession = req.getSession(false);
if(httpsession==null)
{
throw new WebApplicationException(SC_FORBIDDEN);
}
这适用于处理Web服务客户端工具,它只是将Forbidden Exception作为对服务调用的响应抛出,但是也可能存在登录用户的情况,可能会从浏览器中删除Jsession Id Cookie然后可能拨打其中一个服务,我希望将他重定向到登录页面。
所以基本上我问,是否有可能知道请求在哪里?
答案 0 :(得分:0)
解决REST安全问题的一种方法是使用开源协议OAuth。正如OAuth website所述,OAuth是“一种开放式协议,允许通过桌面和Web应用程序的简单标准方法进行安全API授权。” OAuth包含了几个专有框架所采用的通用原则,包括Google AuthSub,AOL OpenAuth,Yahoo BBAuth,即将推出的API,Flickr API和Amazon Web Services API。
OAuth协议使网站或应用程序(称为服务使用者)能够通过API从Web服务(称为服务提供者)访问受保护资源。 API不要求用户向消费者披露其服务提供商凭证。