java jersey 构建一个登录/密码使用端点

标签 java jersey

我想使用 Jersey 构建一个休息身份验证端点。我已经在页面上完成了常规表单:

 @POST @Produces(MediaType.APPLICATION_JSON) @Path("/login")
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public Response login(
            @FormParam("basicbtoatoken") String basicbtoatoken) {
.....
}

但是,现在我需要构建一个 API,让消费者登录+通过并发出 token 以进行进一步的通信。如何在 Jersey 中正确地做到这一点?我可以像其他字段一样在开放模式下传递登录+密码并进行相应处理吗?或者有什么技巧吗?

最佳答案

非常简单:基本身份验证ContainerRequestFilter。我相信您可以通过谷歌搜索找到引用实现。如果不是,则基本身份验证 Base 64 将凭据编码到授权请求 header 中。您的后端凭证存储将在每次身份验证请求时被触发。

现在,这通常是通过 oauth2 协议(protocol)解决的;客户端通过各种方式获取有效的不记名 token 。这是添加到授权 header 中的短期 token ;使用可信 key (通常是 JWT)加密、解码并检查基本健全性(例如过期)被认为足以进行身份​​验证。仅当您需要刷新此 token 时才会访问凭证存储(我见过从 15 分钟到几个小时的任何情况)

关于java jersey 构建一个登录/密码使用端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44609733/

相关文章:

java - 如何在 onCreate 完成之前显示内容 - Android

java - SQLite 扩展 SQLiteOpenHelper 的奇怪错误

java - Documents4j 的 RemoteConverter 的自定义 HttpClient

java - WebApplicationException 与响应

Java:在具有外部源的 netbeans 上自动完成源代码的方法

java - 不支持 ISO 3166 国家 ES?

java - 防止RabbitMQ阻塞上游服务

java - 解决 xml RESTful 问题的最简单 Jersey 客户端

java - jax-rs Jersey @Post 响应实体为空

java - 带有 @ 的 JSON token 名称