将HTTP身份验证添加到嵌入式Jetty

将HTTP身份验证添加到嵌入式Jetty,jetty,wicket,jax-rs,resteasy,embedded-jetty,Jetty,Wicket,Jax Rs,Resteasy,Embedded Jetty,我正在Java应用程序中嵌入Jetty 9.1。我正在以编程方式配置一切;我没有使用web.xml或Spring或其他任何东西。我将Wicket映射到/*,将RestEASY JAX-RS API映射到/rest/*。一切都很好 我想添加HTTP身份验证,因此我添加了以下内容(基于我找到的尽可能多的Jetty文档): 我将一个角色为admin的用户添加到realm.properties。然后,我尝试配置我的REST服务,在我的主要JAX-RS资源上添加以下注释: @RolesAllowed({

我正在Java应用程序中嵌入Jetty 9.1。我正在以编程方式配置一切;我没有使用
web.xml
或Spring或其他任何东西。我将Wicket映射到
/*
,将RestEASY JAX-RS API映射到
/rest/*
。一切都很好

我想添加HTTP身份验证,因此我添加了以下内容(基于我找到的尽可能多的Jetty文档):

我将一个角色为
admin
的用户添加到
realm.properties
。然后,我尝试配置我的REST服务,在我的主要JAX-RS资源上添加以下注释:

@RolesAllowed({ "admin" })
然后,我将以下注释添加到我的主Wicket页面:

@AuthorizeInstantiation("admin")
所有这些变化都没有产生任何影响;我仍然可以使用浏览器导航到RESTAPI和Wicket页面


我猜我需要在Jetty中打开摘要身份验证。但是,如果没有
web.xml
文件,如何以编程方式实现这一点呢?我还需要做什么?

另一个类似的,提供了一个到a的链接,极大地帮助了我,让我开始运行。

在Jetty v7中,您将处理程序链接在一起:

server.setHandler(securityHandler);
securityHandler.setHandler(resourceHandler);

在我的机器上工作!(tm)

不幸的是,该示例强制安全处理程序成为唯一的处理程序——例如,当您希望服务器使用ResourceHandler来服务文件时,它不能很好地发挥作用。我还没有选择答案。一定要让我们知道最好的方法!
server.setHandler(securityHandler);
securityHandler.setHandler(resourceHandler);