java - 如何在 Java(REST) 应用程序中对用户进行身份验证?

标签 java web-services rest authentication web

我有一些 java 服务器应用程序和一些 WEB 界面 (jQuery)。对于 REST 服务,我正在使用 Jersey 实现。我可以轻松地将 JSON 从 WEB 页面发送到服务器,反之亦然。

我的 REST 服务示例:

@Path("/users")
public class User {

 @POST
 @Path("/login")
 @Consumes(MediaType.APPLICATION_JSON)
 public Response authUser(User user) {
   //code
 }
}

但是有一个问题。我如何授权用户? 例如,我有一些私有(private)资源:当用户未登录时,他看不到它的资源/网页,但是当他登录(输入正确的用户名和密码)时,他可以看到它的资源。

我没有使用 sping 应用程序。我用谷歌搜索了很多时间,但没有找到简单的示例,然后我尝试阅读 Jose 的 Sandoval 书“RESTful Java Web 服务”,在“安全”部分有很多有用的信息,但没有示例。

你能帮帮我吗?

最佳答案

我相信有不同的方法来解决这个问题。一种方法是,当用户进行身份验证时,您向他发回一个 token [一段时间后过期],然后他在后续调用中传回该 token 。

将 token 保存到文件或数据库中。在来自 client 的后续请求中,比较 token 时间戳和值。

一旦该 token 过期,他必须重新进行身份验证。

关于java - 如何在 Java(REST) 应用程序中对用户进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15525154/

相关文章:

rest - PayPal REST API 500 内部服务错误仅在实时

java - 将来自 REST 调用的 @PathParam 值存储在列表或数组中

java - 无法获取我的 Rest Webservices 的输出,并且出现 HTTP 404 异常

hibernate - 在通用 Java 编程中使用 Quarkus Panache 实体时出错

java - 开始使用 envers + hibernate(简单而完整的示例)

java - System.currentTimeMillis()、new Date().getTime() 和 Calendar.getInstance().getTimeInMillis() 的准确性?

java - 无法保留 Volley 响应值以供进一步使用,它变为空

java - 如何设计一个持有 java.lang.String 的不可变值类?

php - 如何编写在后台运行的异步 web 服务 php

java - 为什么我的 WAR 文件仍然引用旧数据库服务器中的数据?