2

我想为基于 Jersey0 的服务器/客户端 REST 实现身份验证,但我不确定如何准确地布置代码。

基本上对于每个操作,我都有 2 种方法 - 1 种来自服务器端,1 种来自客户端。

我已经缩小了算法的范围——我将使用带有 HMAC 的亚马逊策略。

问题是如何在代码中进行布局 - 我应该将身份验证(加密/解密代码)添加到每个方法中 - 无论是服务器/客户端还是我应该在双方都有一个“调度”方法来执行加密/解密,然后将执行控制转移到更专业的版本,这样我将有 1 个中心位置在客户端或服务器中完成身份验证?

我愿意听听你对此的评论吗?

4

1 回答 1

4

客户端:

您只需要创建 ClientFilter 并将其添加到过滤器链中。您可以有两个(或更多)客户端,例如一个用于经过身份验证的请求,另一个用于其他请求,因此您不应浪费任何资源。

http://jersey.java.net/nonav/apidocs/1.12/jersey/com/sun/jersey/api/client/filter/ClientFilter.html

服务器端:

与服务器端类似,您可以实现 Request/ResponseContainerFilter(s),它将处理身份验证。这些过滤器默认是全局的,但您可以通过实现 ResourceFilterFactory 来缩小其范围,然后仅附加到适当的资源(端点)。

或者你可以有 2 场战争,一场是为了“安全”资源,一场是为了其他。


http://jersey.java.net/nonav/apidocs/1.12/jersey/com/sun/jersey/spi/container/ResourceFilterFactory.html
http://jersey.java.net/nonav/apidocs/1.12/jersey/ com/sun/jersey/spi/container/ContainerRequestFilter.html
http://jersey.java.net/nonav/apidocs/1.12/jersey/com/sun/jersey/spi/container/ContainerResponseFilter.html

于 2012-02-28T08:29:11.773 回答