java - 如何在使用Web服务的java中实现登录?

标签 java web-services tomcat authentication netbeans

我有一个 java 项目,它利用 j_security_check 和 ldap 进行身份验证。现在我的雇主想使用提供的网络服务将其更改为身份验证。他们给我的其实是一个链接如下图 “ http://11.111.111.111/ADManager/ADlogin.asmx ” 我是 java 和 web 服务的新手。我所知道的是,如果我们向 web 服务提供一些数据,它会给出响应。我的疑惑是

  1. 是否可以使用他们提供的链接创建登录?
  2. 我应该向他们询问更多信息吗?
  3. 是否可以替换我的 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/

相关文章:

java - Eclipse 动态 Web 项目自动部署

java - 将 Framework Assets.at Play 到 java.io.File

c# - 调试 C# web 服务客户端

web-services - 命令模式是否与 RESTful Web 服务兼容?

apache - 重定向到同一个 Tomcat 中的多个 Web 应用程序

amazon-web-services - 从浏览器访问 apache tomcat 服务器

java - ListView不显示ArrayList中的数据

java - 如何在 Apache wicket 中使用从 BasePage 继承的 AdminBasePage(从 WebPage 继承)

java - 使用Java调用上传API

java - 如何在 JAVA 中为 WSDL 中定义的 REST 生成 RESTful 客户端