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资源。 您的浏览器或客户端应该要求您提供凭据。 用户用户/密码例如。