有人知道如何扩展dropwizard界面吗?现在它只有所需的选项,但我需要为anooteted方法添加权限。
例如:
我有一个用户管理员和普通用户。两者都可以进行身份验证并到达我的@auth注释资源。但是我想允许一些(不是全部)http方法请求仅用于管理员而不用于普通用户。我怎样才能在资源之外做到这一点?像
这样的东西@Auth(required = true, right="admin", httpMethod="POST") User user)
@Auth(required = true, right="normalUser", httpMethod="GET") User user)
@Auth(required = true, right="masterOfTheuniverse", httpMethod="*") User user)
答案 0 :(得分:1)
Java不支持注释继承;你不能。
我有一个类似的案例,所以我最终从dropwizard复制相关的类并按我的意愿修改。我已将AuthFilter与OAuthCredentialFilter合并,因为我不需要抽象,而是使用我自己的班级代替Authenticator<C,P>
。
注意:我刚刚意识到,他们使用RequestFilters
rewritten @Auth逻辑用于下一个版本,它看起来更灵活,可以满足您的需求(我可能也会迁移到那里)。当前版本(0.8.x)使用Factory
s,您可以在Java8 implementation找到它。还有Auth annotation不再在主分支中。