有人可以为我提供一些关于JAX-Rs Web服务中访问控制的指示。例如根据用户凭据或名称或任何其他标准限制访问。在太阳手册中找不到任何有用的信息。
提前致谢, Adhir
答案 0 :(得分:5)
我个人使用Spring安全性来实现这一目标。 Spring安全性允许轻松使用各种身份验证和授权方案(例如,通过从数据库或LDAP服务器的HTTP请求中检查基本/摘要头)。设置 JAX-RS 并不难,并且还有一个漂亮的基于方面的权限系统,您可以在其中执行类似
的操作@PreAuthorize(“hasRole('ROLE_ADMIN')或order.customer.username == user.username) deleteOrder(订单);
确保经过身份验证的用户必须位于 ROLE_ADMIN 组中,或者是订单的所有者才能将其删除。
配置完成后,您在 JAX-RS 资源中所要做的就是从spring处理Security异常并采取适当的操作(fx。抛出 WebApplicationException 如所述here)
答案 1 :(得分:3)
人们已经通过多种方式实现了这一目标,并且该网站上的主题有很多很棒的主题(参见Best Practices for securing a REST API / web service)
我个人使用OAuth来完成这项任务。有关OAuth的详细信息,请查看Beginner’s Guide to OAuth