java - Java 中多个 Web 应用程序的单点登录

标签 java authentication servlets form-authentication

我有多个 Web 应用程序,前端使用 angularjs,后端使用 servlet。使用 ajax 调用发出请求。然后,Servlet 初始化 Java 对象,该对象使用 JDBC 连接获取数据并返回结果。

  1. 如何为多个应用程序实现单点登录?
  2. 我是否需要向现有项目添加身份验证代码,还是应该实现单独的项目进行身份验证并跨应用程序使用它?

最佳答案

只是好奇,你见过 Storm 之路吗Java SDK ?还有一个功能叫做 ID Site这为您构建的应用程序提供了一个登录位置(如果您想使用它 - 它是可选的)。

Stormpath Java SDK 更新很快就会发布,它可以为基于 servlet 的 Web 应用程序进一步实现自动化,包括通过 OAuth 2 进行 token 身份验证。例如:

  1. 用户在 AngularJS 登录面板中输入用户名/密码。
  2. 用户名/密码将发送到其中包含 Stormpath SDK 的 Java Web 应用。
  3. SDK 对用户进行身份验证,并在响应正文或 Cookie(或两者)中返回安全身份 token (实际上是 JWT )。
  4. 您的 Angular 应用会获取该 token ,并在所有 future 请求中将其发送到您的网络应用。
  5. SDK 会对 token 进行身份验证并查找相应的用户帐户。
  6. 用户帐户附加到 ServletRequest,以便在请求处理期间随时进行访问(例如,Account account = request.getAttribute("account");

无需服务器端编码即可启用此功能:)

如果您想尽早尝试此功能,请使用以下分支:https://github.com/stormpath/stormpath-sdk-java/tree/servlet-module

还有一个示例应用程序展示了如何启用它:https://github.com/stormpath/stormpath-sdk-java/tree/servlet-module/examples/servlet

该 SDK 通过商业友好型 Apache 2 许可证实现 100% 开源。

披露:我是 Stormpath 的 CTO,同时也是开源安全倡导者 - 无论您是否使用 Stormpath,我都希望看到每个人都可以轻松保护应用程序。

关于java - Java 中多个 Web 应用程序的单点登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26787201/

相关文章:

java - Spring 如何从 ProxyFactoryBean 获取具有原型(prototype)范围的 bean

java - 使用矩阵参数创建 GET 请求

c# - GetResponseStream() 中的垃圾文本

java - 使用 eclipse 设置 jetty 8 以使用 servlet

java - servletcontext.getRealPath ("/") 是什么意思,我应该什么时候使用它

servlets - 如何防止在重定向网址末尾添加 jsessionid

java - 小文件的 Spark 重新分区数据

java - butterknife ocClick 适配器 RecyclerView

javascript - 同时登录网站和 Chrome 扩展程序

windows - .Net core 2.0 windows和jwt认证