1

我必须构建一个显示一些数据的 Web 应用程序。我将有两种用户:注册用户和匿名用户。注册用户将从公司内网运行应用程序,匿名用户将从互联网运行应用程序。注册用户将看到比匿名用户更多的数据。

我需要一个登录表单来注册用户(知道谁在查看数据),但是当匿名用户使用该应用程序时,登录表单一定不能显示。

在同一个 Web 应用程序中,第一个屏幕必须是登录表单,但在某些情况下,登录表单不能出现。最好的方法是什么?

我正在使用 Vaadin(基于 GWT 的 Java 框架)来开发我的应用程序。我认为一个好方法是检查浏览器 url,但我不确定是否是最好的方法。

4

2 回答 2

2

正如 McOmghall 所说。您可以通过调用获取用户的ip:

WebBrowser b = (WebBrowser) getMainWindow().getTerminal().
String ip = b.getAddress();

或(在您的应用程序类中):

WebBrowser b = ((WebApplicationContext) getContext()).getBrowser();
String ip = b.getAddress();

然后您可以使用 Jakara Commons Net 检查 IP 地址是否在您公司的子网中(例如 192.168.0.0/24):

SubnetInfo subnet = (new SubnetUtils("192.168.0.0", "255.255.255.0")).getInfo();
boolean test = subnet.isInRange(ip);

这是另一个很酷的解决方案,不需要使用任何 3rd 方库。

来源 1

来源 2

于 2012-06-07T11:58:46.427 回答
0

如果你有外网和内网的区别,你应该通过IP检查连接的来源。Java 提供了一种方法来做到这一点,但我不知道 Vaadin 是否可以做到这一点。

于 2012-06-06T12:04:30.277 回答