【发布时间】:2018-01-25 12:15:38
【问题描述】:
我正在尝试在 Dropwizard 网络应用程序中实现 OAuth2 身份验证。我创建了所需的Authenticator 和Authorizer 类,并在我的应用程序的运行方法中添加了Dropwizard manual 中提供的代码,如下所示:
environment.jersey().register(new AuthDynamicFeature(
new OAuthCredentialAuthFilter.Builder<User>()
.setAuthenticator(new TokenAuthenticator(service))
.setAuthorizer(new TokenAuthorizer())
.setPrefix("Bearer")
.buildAuthFilter()));
environment.jersey().register(RolesAllowedDynamicFeature.class);
//If you want to use @Auth to inject a custom Principal type into your resource
environment.jersey().register(new AuthValueFactoryProvider.Binder<>(User.class));
我需要的行为是,在我的客户通过在我的登录页面上提供他/她的凭据登录后,我想将客户重定向到我使用 Dropwizard Views 创建的问候页面,并且位于路径下:“/me "如下:
//After succesfull login and token generation
return Response.seeOther(new URI("/me")).build(); // redirect to greeting page
我的问候资源如下所示:
@Path("/me")
@Produces(MediaType.TEXT_HTML)
public class UserResource {
@GET
public UserView getView(@Auth User user) {
return new UserView(user);
}
}
目前我收到“访问此资源需要凭据”。登录后响应。在阅读了令牌身份验证 (nice explanation here) 之后,我发现令牌必须从客户端在每个请求的标头中发送。所以我的问题是如何告诉用户的浏览器(客户端)将令牌包含在未来请求的标头中?
【问题讨论】:
-
感谢关于令牌解释的链接。
标签: authentication login oauth-2.0 dropwizard