【发布时间】:2016-03-30 01:41:24
【问题描述】:
我使用maven在eclipse中开发了一个基本的Restful Webservice。我使用 tomcat 7.0 作为服务器,使用 SE 1.7 和 jersey 作为我的 JAX-RS 源,但我不使用 JPA。我有一个 MySql 数据库,我使用 MySql 提供的连接器 J 连接到数据库。我的数据库中有一个员工表和一个部门表,以及这些表的合适模型类。我的网络服务仅提供以 JSON 格式返回员工和部门信息的 get-methods。
它工作得很好,但现在我希望客户端在访问 webservice-methods 之前先登录。
客户端没有设置jet,但应该是网站,在我的tomcat服务器上,使用javascript和JQuery与webservice交互。
现在我想向我的 web 服务添加身份验证和授权服务。这应该检查用户是否已登录并有权询问已定义的员工或部门。例如,我的一种获取方法是:
@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的员工。
我还想添加一个功能,在一段时间不活动后注销客户端。
我已经找了一个很好的教程和技术来实现对webservice的认证和授权服务。但我并没有真正成功,因为:
- 我是开发 Java RESTful Web 服务的新手。
- 我只找到了在 SOAP Web 服务中实现的示例,并且从未阅读过关于在一段时间处于非活动状态后自动注销的内容。
你们中有人知道如何解决我的问题的好链接/示例/技术吗?
如果有任何问题,我会回答他们。感谢您的帮助和时间!
【问题讨论】:
-
请求站外资源是题外话。我会坚持询问如何实现您需要实现的目标,而不是询问链接/工具/代码。请注意,如果您寻找简单的答案,这不是一个简单的话题 - 没有。安全性当然是技术栈的标准部分,因为它是泽西岛,它有一个很好的用户手册和一个很好的安全章节。 jersey.java.net/documentation/latest/security.html 。但是该章确实假设您了解 JavaEE 安全性的来龙去脉。 (编辑:对不起,你确实提到了泽西岛)
-
" 请注意,这不是一个简单的话题,如果您寻找简单的答案 - 没有。安全性当然是技术堆栈的标准部分" 这正是我的问题。几天以来,我一直在学习如何开发一个宁静的网络服务,但我没有找到结合我真正需要的知识来解决给定问题的资源。这一切都是我必须在大约 2 个月内提交的项目的一部分,我不想在上周做所有事情........但是我寻找一个非常好的来源仍然没有成功.我一年前才学Java……不过谢谢你的帮助。
标签: java authorization restful-authentication