我有一个用jboss resteasy构建的jax-rs web服务层。所有Web服务都使用和生成json对象。我需要保护这一层以处理来自不同来源的请求。
可以通过基于表单的登录的ajax前端访问ws。因此,我需要在服务器上存储用户会话,并在每个ws请求中检查它是否存在。
此外,我想使用某种HMAC(无OAuth)身份验证通过REST API公开Web服务。
有人知道实现它的解决方案吗?拥有一个可以处理来自两个来源的请求的集中授权组件会很棒。
答案 0 :(得分:0)
您可以编写一个基于JSR-196的提供程序来为您处理这两个用例,然后为两个端点配置它。可能需要添加一些鉴别器,以便服务知道如何验证随机请求(例如,可以根据URL在提供程序中配置)。
答案 1 :(得分:0)
我不确定100%最好的方法来解决这个问题,但我遇到了类似的问题。如果您发现它适用,我会分享它。 (我不熟悉resteasy)基本上我们的移动平台插入了现有的REST Web服务。我被要求将移动服务中的一些数据显示到我们的具有表单身份验证的Web应用程序。
解决方案是获取FormsAuthentication cookie并将其添加到您要发送给服务的请求的标头中,服务将解密该cookie以获取发出请求的用户。
这有两个假设:1。您的服务和您的Web应用程序都使用相同的加密密钥; 2.一旦您通过FormsAuth登录,您的服务就不必再次完全验证用户凭据。所以该服务基本上只是说“我可以解密令牌吗?这是一个有效的用户吗?”