码头网络服务器安全
问题内容:
我有一个由Jetty驱动的网站。
我想使网站密码受保护(或类似)。
有没有一种方法可以通过单独配置来实现(无需触摸代码)。
所有帮助,不胜感激。
担
问题答案:
一种方法是通过为应用程序设置基本身份验证。仅当您使用ssl时才应执行此操作,但是没有ssl的登录仍然不安全,因此我想您已经拥有了。
在Jetty中有很多方法可以做到这一点,但这只是其中之一。
首先,您必须定义一个领域,在其中定义所有用户,密码,角色等。Jetty中的默认设置已经定义了一个称为“测试领域”的领域。领域在文件/etc/jetty-
testrealm.xml中定义。您可以使用此领域或创建一个新领域。如果定义一个新名称,则可以在同一文件或单独的文件中定义它。如果创建单独的文件,请记住在start.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>