2

我有一个网络应用程序(我们称之为 app1),我什至看不到源代码,要进入它。我需要进行基本身份验证,“用户,通过”。

然后我正在创建另一个 Web 应用程序 (app2)(即 java/JSF/Icefaces),您还必须使用用户密码登录(用户和 app1 的密码与用户和 app2 的密码相同)。

有时我必须打开一个 app1 窗口(填写一些我不想在 app2 中复制的表格)。我有该窗口/表单的有效 URL,但是,问题是,当我调用该 URL 时,app1 首先要求用户/通行证,我不希望这样。我想要类似单点登录的东西。这只是基本身份验证(我有用户通过)。

我试图在 app2 中打开一个新的 jsp,并将其发送重定向到 app1 尝试进行基本身份验证,但我不能,我的意思是,它不起作用。

App1 有一个 REST API,我可以通过基本身份验证从 app2 使用它(这样就可以了)。

有人能帮我吗?

谢谢!!

4

3 回答 3

2

您必须了解 App1 如何处理登录,例如,如果它是基于 cookie 的,那么首先您需要使用 REST 登录,然后根据 App1 的要求设置 cookie。

单点登录概念

建立单点登录

于 2012-06-05T06:50:41.250 回答
0

你可以通过三种方式做到这一点:

  1. 会议
  2. 饼干
  3. 过滤器

第一种情况下,您必须更改代码,App1以便它处理来自.App2

第二种情况下,只需通过检查App2.. 设置的 cookie 来进行自动登录(不过我对此没有信心)

第三种情况下,您必须设置一个FilterinApp1以便它在请求来自您的特殊信息时绕过登录凭据。App2

但是对于那些您必须更改App1. 您不能直接绕过身份验证过程。此外,您的一个很好的特点是App1不允许在没有login凭据的情况下直接访问安全页面。

于 2012-06-05T06:48:09.543 回答
0

您可以SSO (Single Sign On)为此使用一个概念。如果您想直接通过 SSO 进行操作,是的,您可以按照某些人提供的 SSO 模块进行操作。当然,您可以创建自己的 SSO 方法,实施以下步骤:

1-> 使用REST/SOAP API登录到 app1。作为响应,返回一个参数(一个加密的字符串或其他东西)。将其存储在某个 cookie 中。(在后面,将此参数保存在一些超时和用户信息中,例如,在 a 中HashMap

2->当从第二个应用程序登录时,将参数与请求一起发送。如果您在后端接受该参数,请尝试对其进行验证,timeout并且可能是用户信息。成功后继续进行身份验证。

您可以在domain level cookie. 中设置参数,因此所有过程都发生在您的后端。

你能试试这个并告诉我吗?

谢谢

于 2012-06-05T06:59:22.047 回答