所有人。我在保护REST web服务时遇到了问题。它是Java EE web应用程序的一部分。为了保护页面,我使用了login-config标签并设置了"FORM“身份验证。现在我不知道如何保护web服务,因为"FORM“不适合它,而且我不能为app设置两个login-config标记。我考虑过拆分成两个应用程序,但我不认为这是一个好主意。有什么建议吗?
发布于 2010-12-28 11:52:44
其中包含有关如何使用NetBeans创建安全web服务的信息:http://netbeans.org/kb/docs/websvc/wsit.html
许多web服务提供商使用api密钥来验证对服务的访问。您可能想要考虑为您的服务做一些类似的事情。
发布于 2011-09-19 02:40:47
REST API有一个单独的子路径是很常见的-通过这种方式,您可以仅为特定于您的应用程序的URL指定身份验证约束,而对于与您的REST API相对应的URI,则可以使用jersey、OAuth过滤器或其他工具实现身份验证。
如果您的应用程序都是用Jersey编写的,并且您希望为REST客户端和浏览器公开完全相同的URI(并仅根据请求的媒体类型进行区分),您可以使用" login“URL (用于显示登录页面),并且只能使用表单身份验证进行保护。然后,再次添加Jersey OAuth过滤器(或其他身份验证过滤器),它不会生效,除非请求中有OAuth头,以及另一个过滤器,您将检查ContainerRequest.getUserPrincipal()是否为空。如果为null,您可以返回Response.seeOther(UriBuilder.fromPath("/login").queryParam("redirect", request.getAbsolutePath()).build()).build()
-,这将重定向到登录(对于oauth,这将不起作用,因为oauth请求将成功,或者前一个过滤器将失败并返回未授权或错误的请求状态码)。在登录资源中,您可以使用redirect query参数在成功登录后重定向回原始页面。
https://stackoverflow.com/questions/4540510
复制相似问题