我有一个 java 项目,它利用 j_security_check 和 ldap 进行身份验证。现在我的雇主想使用提供的网络服务将其更改为身份验证。他们给我的其实是一个链接如下图 “ http://11.111.111.111/ADManager/ADlogin.asmx ” 我是 java 和 web 服务的新手。我所知道的是,如果我们向 web 服务提供一些数据,它会给出响应。我的疑惑是
- 是否可以使用他们提供的链接创建登录?
- 我应该向他们询问更多信息吗?
- 是否可以替换我的 java 项目中已配置的 j_security_check 和 ldap?
P.S :给我布置这个任务的人好像也没什么知识。
最佳答案
简短的回答是你可以。
您需要执行以下操作:
每个网络资源都受到(servlet)过滤器的保护。此过滤器检查每个传入请求并验证需要位于 http header 上的 token 。如果 token 有效,则服务请求。如果 token 无效,过滤器将未经授权发回 http 401。然后重定向到腰部页面。
使用休息服务登录:
1) 创建带有用户名/密码字段的自定义登录页面。
2) 创建一个 rest web 服务,接收用户名/密码。它将根据外部访问管理基础设施检查凭据,如 OpenAM .
3) 首先调用auth(username, password) rest api获取auth token。如果给定的凭据没问题,则只需使用 HTTP 200 响应代码将身份验证 cookie 发送回客户端。
4) 然后,您可以调用 protected rest api。您每次都需要随请求一起发送 auth cookie。
5) Servlet 过滤器(或类似的东西)检查每个传入的请求并验证 token 。如果 token 有效,则请求将转到其余方法,否则您需要生成一个 http 401/403 响应。
我建议你不要写自己的身份验证层,请使用现有的,例如 OpenAM。
这forum topic解释你的一切。
关于java - 如何在使用Web服务的java中实现登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44559115/