Google Cloud Endpoints v2:有什么方法可以注入用户?
Google Cloud Endpoints v2: Any way to inject User?
我是 Google Cloud Endpoints 的新手,我目前正在寻找接收 User
方法参数的替代方法。
在关于 Authenticating Users 的文档中,显示的 仅 接收有关用户信息的方法是接收实例 com.google.api.server.spi.auth.common.User
作为方法参数.
除了直接在端点方法上,似乎没有我可以用来在其他地方请求此原则的注释。这显然可以工作,但我对以下场景非常感兴趣:
/*
* in an injection provider
*/
CustomUserClass getUser(@EndpointsUser User user) throws UnauthorizedException{
if(user == null) throw new UnauthorizedException("If we're requesting the user be injected, we should reject unauthenticated requests");
//datastore code to lookup and return my representation of a user
}
/*
* in the endpoint class
*/
@Inject
CustomUserClass userProfile;
//endpoint methods here
有谁知道如何做到以上几点?我意识到我可以简单地将此逻辑移动到我的端点 class,但这是一个横切关注点的情况,不仅编程不好,而且不太容易测试。
是的,我知道我可以使用自己的解决方案(双关语),但是云端点应该可以让这种事情变得简单,不是吗?
这目前是不可能的,因为在编写框架时 Guice 用例并不常见。你可以 file a feature request.
我是 Google Cloud Endpoints 的新手,我目前正在寻找接收 User
方法参数的替代方法。
在关于 Authenticating Users 的文档中,显示的 仅 接收有关用户信息的方法是接收实例 com.google.api.server.spi.auth.common.User
作为方法参数.
除了直接在端点方法上,似乎没有我可以用来在其他地方请求此原则的注释。这显然可以工作,但我对以下场景非常感兴趣:
/*
* in an injection provider
*/
CustomUserClass getUser(@EndpointsUser User user) throws UnauthorizedException{
if(user == null) throw new UnauthorizedException("If we're requesting the user be injected, we should reject unauthenticated requests");
//datastore code to lookup and return my representation of a user
}
/*
* in the endpoint class
*/
@Inject
CustomUserClass userProfile;
//endpoint methods here
有谁知道如何做到以上几点?我意识到我可以简单地将此逻辑移动到我的端点 class,但这是一个横切关注点的情况,不仅编程不好,而且不太容易测试。
是的,我知道我可以使用自己的解决方案(双关语),但是云端点应该可以让这种事情变得简单,不是吗?
这目前是不可能的,因为在编写框架时 Guice 用例并不常见。你可以 file a feature request.