我们正在为我们的下一个项目添加Dropwizard,我们需要实现的其中一件事是基于角色的访问控制机制。是否有使用Dropwizard或我可以遵循的示例的标准简单方法? 最佳答案 你看过dropwizard-auth了吗??它使得插入任何你想要的身份验证方法(Shiro、Spring等)变得非常容易。如果您想走那么远,它还支持OAuth2...您可以像这样实现Shiro身份validator:publicclassBasicAuthenticatorimplementsAuthenticator{@OverridepublicOpti
我正在尝试连接一个dropwizard0.8.*应用程序,并且我使用了一个helloworld入门示例。代码保持不变,应用程序正常启动。虽然当我尝试访问分配给helloworldGET请求的路径时,浏览器返回一个:HTTPERROR404Problemaccessing/hello-world.Reason:NotFound这有点奇怪,因为应用日志另有说明并为该请求返回200:0:0:0:0:0:0:0:1--[15/Sep/2015:07:33:58+0000]"GET/hello-worldHTTP/1.1"200-"-""Mozilla/5.0(Macintosh;IntelMa
我有一个Dropwizard项目(使用Jersey2.x),我需要使用另一个库,该库依赖于1.x的jersey-client,我在让两者在类路径中共存时遇到了一些麻烦.看起来正在发生的事情是HK2正在寻找任何实现javax.ws.rs.*提供者的东西,并试图实例化它们。当它是Jersey1.x的类时,它需要的依赖注入(inject)不存在,我最终会遇到很多错误,例如:Causedby:java.lang.IllegalArgumentException:TheMultiPartConfiginstanceweexpectedisnotpresent.Haveyouregisteredt
是否可以让我的应用程序在运行时更新配置设置?我可以轻松地在我的UI中公开我想要的设置,但是有没有办法允许用户更新设置并使它们永久化,即将它们保存到config.yaml文件中?我能看到它的唯一方法是手动更新文件,然后重新启动服务器,这似乎有点受限。 最佳答案 是的。可以在运行时重新加载服务类。Dropwizard本身没有重新加载应用程序的方法,但jersey有。Jersey在内部使用容器对象来维护正在运行的应用程序。Dropwizard使用Jersey的ServletContainer类来运行应用程序。如何在不重启的情况下重新加载应
如果数据库不存在,我正在使用Dropwizard(1.0.0)和Liquibase创建数据库。这里的问题是我使用的是不同的Postgres架构(非公开)。似乎Liquibase之前无法创建此模式,是吗?我原以为Liquibase会生成此架构,但如果我尝试构建数据库,它总是会抛出“未找到名为xx的架构”。 最佳答案 即使Liquibase在其捆绑的更改/重构中没有CREATESCHEMA(因此在dropwizarddbdump期间不会生成),您仍然可以包括这是使用sqltag的迁移变更日志中的变更集,如下:CREATESCHEMAfo
在DropWizard中,我可以像这样设置基本身份验证(在Application#runimpl中):BasicAuthProviderauthProvider=newBasicAuthProvider(authenticator,"SECRET_REALM");environment.jersey().register(authProvider);我想知道字符串realm("SECRET_REALM")的意义是什么?根据一般的安全概念,我将“领域”理解为存储用户和角色/权限的地方(数据库、目录、文件、keystore等)。领域在DropWizard中意味着什么,在BasicAuthP
我有一个dropwizard应用程序,我在其中将记录器附加程序配置为文件如下:logging:level:INFOloggers:"mylogger":INFO"com.path.to.class":INFOappenders:-type:filecurrentLogFilename:.logs/mylogs.logarchivedLogFilenamePattern:.logs/archive.%d.log.gzarchivedFileCount:14并且,在我的应用中创建了记录器:importorg.slf4j.Logger;importorg.slf4j.LoggerFactor
如果以不安全的方式访问某些方法,我想对其进行限制。我正在创建一个@Secure注释来检查请求是否通过安全通道发送。但是,我无法创建捕获请求的HttpContext的可注入(inject)方法。@Documented@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD})public@interfaceSecure{}publicclassSecureProviderimplementsInjectableProvider{@OverridepublicComponentScopegetScope(){returnC
我是DropWizard的新手,并希望从服务器端View重定向到我的应用程序中的另一个url。DropWizard是否以某种方式结束了这个常见任务?例如@GETpublicViewgetView(@ContextHttpServletRequestreq){Viewview=newView();if(somethingBad){//codeheretoredirecttoanotherurl,eg/bad_data}else{returnview;}} 最佳答案 这是一个简单的代码示例,它实际使用WebApplicationExce
我有一个我正在尝试设置的简单ResourceTest,但是当我尝试构建ResourceTestRule时,出现以下异常:ProfilesResourceTest,shouldGetEmptyStuffWARN[2016-05-1517:44:50,159]org.glassfish.jersey.internal.Errors:Thefollowingwarningshavebeendetected:WARNING:HK2servicereificationfailedfor[com.sun.jersey.core.impl.provider.entity.MimeMultipartP