我想使用 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/