gpt4 book ai didi

java - 设计问题: Dynamically changing GUI -> sending implementation classes as soap attachments

转载 作者:行者123 更新时间:2023-11-30 05:14:27 25 4
gpt4 key购买 nike

这是一个场景:我有一个 java 前端(RCP/SWT)应用程序,目前没有身份验证支持。但是,我必须为此应用程序添加安全性,以便将其部署在不同的企业环境中。我有一些方法,我想我会在这里与大家分享并听取你们的意见。请注意,目前还没有严格的要求,所以..我希望您考虑典型和非典型的企业网络安全模型。

方法 1

  • 创建一个“安全”网络服务胖客户端将在启动时调用。
  • 客户端查询当前身份验证模式的安全性,并以肥皂附件形式接收身份验证的实现类。收到的类不会具有身份验证逻辑,而只会描述 UI 和 UI 上的事件。 (客户端可以使用 Thinlet 等 GUI 工具包吗?)
  • 加载该类后,将向最终用户显示与当前设置的身份验证方法相关的 UI。

优点:

  • 这种方法可以让我处理不同的身份验证方案。例如,如果应用程序必须根据数据库中存储的用户名和密码进行身份验证,则带有用户名和密码字段的屏幕就足够了。然而,假设用户要进行网络登录,需要输入网络名称,则 UI 将包含三个字段。如果客户端网络的安全模型规定基于 ntlm/SSO 的身份验证,则用户将看不到 UI。这也将为 future 的身份验证方法留出空间 - 例如,支持验证码特定的登录屏幕/生物识别内容/等等。

方法 2

KISS(保持是……,简单)

  • 用户名和密码通常是所有已知身份验证机制所需的唯一两个凭据?
  • 让胖客户端查询 Web 服务并让 Web 服务处理整个身份验证过程。

我不确定上述方法是否现实/可行/常用。感谢您的帮助。

最佳答案

我当然不建议将类定义作为 SOAP 附件传输。网络类加载器会更有意义,但在您的情况下仍然不需要。

将属于客户端的内容放入其中 - UI。在客户端上准备好多种屏幕类型(即定义为类),并根据服务器传递的单个值激活它们中的每一个。例如,如果传递了 AuthenticationType.CREDENTIALS,请输入用户名/密码。如果 Authentication.SMART_CARD 为 - 则使用智能卡。

如果您想分发应用程序并稍后实现不同的身份验证屏幕,请使用 Java Web Start 。因此,将保证所有客户端都运行最新版本。

了解您的要求施加了一些限制后,请查看 this network classloaders article .

关于java - 设计问题: Dynamically changing GUI -> sending implementation classes as soap attachments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2127307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com