我在Java应用程序中嵌入了Jetty 9.1。我正在以编程方式配置所有内容;我不使用web.xml
或Spring或其他任何东西。我将Wicket映射到/*
,并将RestEASY JAX-RS API映射到/rest/*
。这一切都很好。
我想添加HTTP身份验证,所以我添加了以下内容(基于我发现的尽可能多的Jetty文档):
HashLoginService loginService = new HashLoginService();
loginService.setName("My Realm");
loginService.setConfig("src/main/resources/realm.properties");
server.addBean(loginService);
我添加了一个角色为admin
到realm.properties
的用户。然后我尝试配置我的REST服务,将以下注释放在我的主JAX-RS资源上:
@RolesAllowed({ "admin" })
然后我将以下注释添加到我的主Wicket页面中:
@AuthorizeInstantiation("admin")
这些变化都没有任何区别;我仍然可以使用我的浏览器导航到我的REST API和Wicket页面。
我猜我需要在Jetty中启用DIGEST身份验证。但是如何在没有web.xml
文件的情况下以编程方式执行此操作?我还需要做什么?
答案 0 :(得分:1)
另一个answer到类似的question,提供了一个sample webapp的链接,这对我帮助很大,让我开始运行。
答案 1 :(得分:1)
在Jetty v7中,您将处理程序链接在一起:
server.setHandler(securityHandler);
securityHandler.setHandler(resourceHandler);
在我的机器上运行! (TM)