我想从dropwizard丢弃旧的身份验证,这就是为什么我使用CachingAuthenticator的打击配置。

@Override
public void run(WebConfiguration configuration, Environment environment) {
   environment.jersey().register(new ActivityResource());

   CachingAuthenticator<BasicCredentials, AuthUser> cachingAuthenticator =
        new CachingAuthenticator<>(environment.metrics(), new WebAuthenticator(),
                configuration.getAuthenticationCachePolicy());
}

策略在yml文件中为
authenticationCachePolicy: maximumSize=10, expireAfterAccess=1m

我的问题是:1)我该如何注册(使其工作)cachingAuthenticator,以便对每个请求进行身份验证。

2)如何在几秒钟内设置expireAfterAccess

3)任何在代码上都是错误的,建议...

最佳答案

我不了解“2)”,但是对于“1)”,您只需要将身份验证器连接到基本身份验证提供程序

CachingAuthenticator<BasicCredentials, AuthUser> cachingAuthenticator =
        new CachingAuthenticator<>(environment.metrics(), new WebAuthenticator(),
                configuration.getAuthenticationCachePolicy());

environment.jersey().register(AuthFactory.binder(
            new BasicAuthFactory<>(cachingAuthenticator,
                     "Example Realm", AuthUser.class)));

07-24 19:54