这个问题更倾向于Design and Architecture
,我想知道读者如何思考我的情景。
我的Application should provide other application interface when the user logs in to my application.
例如,假设我的应用程序是www.gmail.com
而其他应用程序是www.stackoverflow.com
,那么我想要完成的是当用户登录gmail account
时,他应该看到他的主页stackoverflow
和特定问题。
从技术角度来看,我们必须使用Java,因此不确定实现该要求的设计和体系结构考虑因素。
一种方法,我想到的是,当用户登录gmail
时,我将使用stackoverflow
网站的所有登录凭据参数填充请求对象,以及将传递的问题_id作为参数,然后在Stackoverflow
方面,我会解析request object
和authenticate the user credentials
,并根据request parameter
,我会render
question_id
我received from request
。
我想知道best approach
issues
和designing such an system.
会发生什么
修改
在看到所有答案后,我想对我的问题添加一些更新。我正在寻找的是在尝试完成任务时获得问题和挑战,我也在使用Java,并且不确定如何使用Java实现我的目标,因为我们没有东西像OLE
我们在Microsoft Technology堆栈中实现的任务。
希望我在这里有所作为。
答案 0 :(得分:0)
您无法在客户端或Java脚本上执行此操作,因为这会导致跨站点脚本问题。或者你可以使用iframe(已经过时)。
另一种方法是为应用程序创建自己的界面/ UI,并仅使用后端的服务层(在您的情况下为java / j2ee),您最终可能会再次复制所有前端(从积极的方面来说,你将获得自己的网站品牌)。
关于凭证,现在大多数网站都使用“OAuth”或类似网站,而且授权不应该那么困难
答案 1 :(得分:0)
如果两个应用程序都是基于Web的内部应用程序,您可以编写独立于任一应用程序的主登录组件,它将执行用户身份验证,在登录时加载任何有用的数据,并发送用户的浏览器到正确的URL,确保将任何相关信息传递给目标应用程序(作为转发请求的一部分或在某些分布式共享内存中的幕后)。只是一个想法。
答案 2 :(得分:0)
我可以想出三种解决方法。
实施单人唱歌。您登录到所有企业应用程序,并且一旦登录,所有这些都使用相同的身份验证凭据(我认为这是最好的选择。您不需要完整的SSO,至少对于这两个应用程序,您可以使用相同的凭证验证机制)
你也可以做你正在建议为用户创建身份验证凭据(即cookie),然后进行重定向。请记住,两个应用程序都需要在同一个子域中才能工作。
如前所述,您还可以通过应用程序公开要从其他应用程序中使用的数据/服务。
在我的公司,我们有所谓的“图形服务”,它由中央服务器管理,也可以进行凭据验证,如果凭据正确,它会为用户显示用户界面(通常在弹出窗口或一个iframe)。
希望它有所帮助。