Jetty网络服务器安全性

Dan*_*Dan 13 java security jetty

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

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

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

所有人都非常感谢.

sst*_*dal 22

一种方法是为您的应用程序设置基本身份验证.如果你使用ssl,你应该只这样做,但是无论如何登录没有ssl是不安全的,所以我猜你已经有了.

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

首先,您必须定义一个定义所有用户,密码,角色等的领域.Detty中的默认设置已经定义了一个名为"Test Realm"的领域.领域在文件/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>
Run Code Online (Sandbox Code Playgroud)