码头网络服务器安全
我有一个由Jetty提供支持的网站。
我想使网站受密码保护(或类似)。
有没有办法通过单独配置(不接触代码)来做到这一点。
所有的帮助都非常感谢。
担
我有一个由Jetty提供支持的网站。
我想使网站受密码保护(或类似)。
有没有办法通过单独配置(不接触代码)来做到这一点。
所有的帮助都非常感谢。
担
执行此操作的一种方法是为应用程序设置基本身份验证。只有当你使用ssl时,你才应该这样做,但是如果没有ssl的登录无论如何都是不安全的,所以我想你已经有了。
在码头有很多方法可以做到这一点,而这只是其中之一。
首先,您必须定义一个领域,您可以在其中定义所有用户,密码,角色等。Jetty中的默认设置已经定义了一个名为“测试领域”的领域。该领域在文件 /etc/jetty-testrealm 中定义.xml。您可以使用此领域或创建一个新领域。如果定义新的,则可以在同一文件或单独的文件中定义它。如果创建单独的文件,请记住在开始.ini中包含该文件。
/etc/jetty-testrealm.xml引用了 /etc/realm.properties。这是您创建用户的位置。如果只想使用测试领域,请记住删除已在 realm.properties 中定义的默认用户。
还有其他类型的领域实现使用即用户数据的数据库。
接下来,打开 /etc/webdefault.xml 文件,并在底部添加类似下面的内容:
<security-constraint>
<web-resource-collection>
<url-pattern>/*</url-pattern> <!--The url that should be protected -->
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name> <!--The required roles for accessing the url -->
<role-name>user</role-name>
<role-name>moderator</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method> <!-- Use http basic authentication -->
<realm-name>Test Realm</realm-name> <!-- Users are defined in this realm -->
</login-config>
我发现码头分布提供的示例非常有用。要使用文本文件中的用户帐户使用基本身份验证,请查看{jetty.home}/demo-base/etc目录。将这两个文件复制到 {jetty.base}/etc 文件夹中:realm.properties, test-realm.xml
除非您告诉 Jetty,否则不会正确加载这些文件。这可以通过将以下文本添加到开始.ini或 {jetty.base}/start.d 文件夹中的任何 *.ini 文件来完成:
# Create and configure the test realm
etc/test-realm.xml
jetty.demo.realm=etc/realm.properties
最后,创建一个.xml Web文件(如果尚未完成),并在@sstendal/@Torsten之前的答案中插入提供的示例。它使用与码头发行版中的演示基础示例中相同的真实名称,因此它应该可以正常工作。重新启动码头并尝试访问您的任何网络资源。您的浏览器或客户端应要求您提供凭据。例如,用户用户/密码。