我使用maven在eclipse中开发了一个基本的Restful Webservice。我使用tomcat 7.0作为服务器,SE 1.7和jersey作为我的JAX-RS源,但我不使用JPA。我有一个MySql DB,我用MySql提供的Connector J连接到DB。我的数据库中有一个employee表和一个deparment表,以及这些表的合适模型类。我的webservice只提供以JSON格式返回雇员和deparment信息的get方法。
它工作得非常好,但现在我希望客户端在访问webservice-methods之前登录。
客户端没有设置jet,但它应该是一个网站,在我的tomcat服务器上使用javascript和JQuery与web服务进行交互。
现在我想为我的webservice添加身份验证和授权服务。这应检查用户是否已登录并具有要求定义的员工或部门的权限。例如,我的一个get方法是:
@GET
@Path("/employee/{id}")
@Produces(MediaType.APPLICATION_JSON)
public Employee getEmployee(@PathParam("id") long id) {
return EmployeeDBService.getDefinedEmployee(id);
}
现在客户端使用serverurl / myresource / employee / 10调用它 但登录客户端的用户无权要求具有ID 10的员工。
我还想添加一个功能,在闲置一段时间之后注销客户端。
我已经搜索了一个很好的教程和技术来实现对Web服务的身份验证和授权服务。但我并没有真正成功,因为:
你们中的某些人是否知道如何解决我的问题的良好链接/示例/技术?
如果有任何问题,我会回答他们。谢谢你的帮助和时间!
答案 0 :(得分:1)
如评论所述,security chapter in the Jersey documentation将向您展示如何在REST API中集成身份验证机制:此部分身份验证仅检查用户是否已登录以及他是谁。
登录客户端的用户无权要求ID为10的员工
JAX / RS对您的数据模型及其权限一无所知。但他会给你登录。您必须自己实现逻辑。可能这将是每个REST方法的第一行。