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

时间:2014-11-06 18:51:20

标签: java authentication servlets form-authentication

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

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

1 个答案:

答案 0 :(得分:2)

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

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

  1. 用户在AngularJS登录面板中输入用户名/密码。
  2. 用户名/密码将发送到其中包含Stormpath SDK的Java Web应用程序。
  3. SDK对用户进行身份验证,并在响应正文或cookie(或两者)中返回安全身份令牌(实际上是JWT)。
  4. 您的Angular应用会获取该令牌并将其发送给您将来的所有网络应用请求。
  5. SDK对令牌进行身份验证并查找相应的用户帐户。
  6. 在请求处理期间的任何时候,用户帐户都会附加到ServletRequest以进行访问(例如,Account account = request.getAttribute("account");
  7. 启用此功能无需服务器端编码:)

    如果您希望尽早访问以尝试此操作,请执行以下操作:https://github.com/stormpath/stormpath-sdk-java/tree/servlet-module

    示例应用程序显示如何启用它:https://github.com/stormpath/stormpath-sdk-java/tree/servlet-module/examples/servlet

    SDK是100%开源的,通过商业友好的Apache 2许可证。

    披露:我是Stormpath的首席技术官,也是开源安全倡导者 - 无论您是否使用Stormpath,我都希望每个人都可以轻松保护应用程序。