我正在关注this tutorial,以便尝试为基于dropwizard的API添加身份验证。
我遇到的问题是,教程到了我们需要编写authenticator类的程度,并使用以下代码:
private static final Map<String, Set<String>> VALID_USERS = ImmutableMap.of(
"guest", ImmutableSet.of(),
"user", ImmutableSet.of("USER"),
"admin", ImmutableSet.of("ADMIN", "USER")
);
这是我可以收集的一种设置某些角色的方法,以便以后可以在限制对某些端点的访问时使用它们 - 但是我在这段代码上收到错误:
Incompatible Types
Required : Map <path to Map class here>
Found : ImmutableMap <path to ImmutableMap class here>
现在,我意识到它们是不同的类型,之前我使用过地图,但ImmutableMaps对我来说是新的领域,所以我有点依赖于教程工作中的这段代码。
如果有人能让我知道如何解决它,那将是非常棒的,如果你能解释为什么它也被破坏了,那就更好了!谢谢!
答案 0 :(得分:1)
ImmutableMap.of
将推断<String, ImmutableSet<String>>
的泛型类型参数。您可能必须明确指定类型args:
private static final Map<String, Set<String>> VALID_USERS = ImmutableMap.<String, Set<String>>of(
"guest", ImmutableSet.of(),
"user", ImmutableSet.of("USER"),
"admin", ImmutableSet.of("ADMIN", "USER")
);