Jetty网络服务器安全性

我有一个由Jetty提供支持的网站。

我想使网站密码受到保护(或类似)。

有没有办法单独通过配置(不触及代码)来完成此操作。

所有人都非常感谢。

一种方法是为您的应用程序设置基本身份validation。 你应该只在你使用ssl时这样做,但是不管ssl登录都不安全,所以我猜你已经有了。

在Jetty中有很多方法可以做到这一点,而这只是其中之一。

首先,您必须定义一个定义所有用户,密码,角色等的领域.Detty中的默认设置已经定义了一个名为“Test Realm”的领域。 领域在文件/etc/jetty-testrealm.xml中定义。 您可以使用此领域或创建一个新领域。 如果定义新的,则可以在同一文件或单独的文件中定义它。 如果您创建单独的文件,请记住在start.ini中包含该文件。

/etc/jetty-testrealm.xml引用了/etc/realm.properties。 这是您创建用户的位置。 如果您只想使用test-realm,请记住删除已在realm.properties中定义的默认用户。

还有其他类型的领域实现,即使用数据库来存储用户数据。

接下来,打开/etc/webdefault.xml文件并在底部添加如下内容:

  /*    admin  user moderator    BASIC  Test Realm   

我找到了docker分布提供非常有用的例子。 要使用文本文件中的用户帐户进行基本身份validation,请查看您的{jetty.home} / demo-base / etc目录。 将这两个文件复制到您的{jetty.base} / etc文件夹:realm.properties,test-realm.xml

除非你告诉它,否则Jetty将无法正确加载这些文件。 这可以通过将以下文本添加到{jetty.base} /start.d文件夹中的start.ini或任何* .ini文件来完成:

 # Create and configure the test realm etc/test-realm.xml jetty.demo.realm=etc/realm.properties 

最后,创建一个web.xml文件(如果尚未完成)并插入@ sstendal / @ Torsten在其早期答案中提供的示例。 它使用与jetty发行版中的演示基础示例相同的真实名称,因此它应该可以工作。 重新启动jetty并尝试访问您的任何Web资源。 您的浏览器或客户端应该要求您提供凭据。 用户用户/密码例如。