2012-07-06 48 views
1

我正在开发一个部署一些RESTful Web服务的应用程序,我想使用HMACSHA512签名方法,但宁愿不必在每个发布的Web服务中实现它。Java EE REST风格的Web服务安全与HMAC如何拦截请求?

所以我正在寻找一种方法来拦截请求,然后它到达REST WS,并有一个自定义类,基于HttpHeaders/UriInfo /等和HMAC摘要等,将决定是否它是否有效并转发到REST WS或拒绝它。

我看到约ResourceFactoryFilter一些东西,增加了过滤器的web.xml文件等,但我迷路了..

任何知识这个能给我我将如何实现的一些技巧这个?特别是实现这个目标的最好方法以及这些部分如何相互作用。

如何我想象我想要做的:客户端< - >拦截 - > REST WS - > ...

谢谢您的时间。

P.S .:我想在没有像Spring这样的第三方框架的情况下实现这一点。

+2

你的意思是'ServletFilter'(javax.servlet.Filter)? – home 2012-07-06 15:14:20

回答

1

最简单的方法是编写一个ServletFilter类,在您的web.xml中配置您想要检查的特定URL前缀。

该类将有一个doFilter方法,并在该方法中进行验证。如果成功,您可以致电chain.doFilter()继续处理;否则抛出异常。

+1

根据您使用的是哪个版本的JAX-RS(您使用的一些术语是JAX-RS术语),可能会有一个与servlet过滤器相当的功能,使您可以更多地访问JAX-RS内部。 – craigforster 2012-07-06 16:21:05

+0

太容易了。很难相信我的所有网络搜索都不会显示出来。非常感谢你! – lm2s 2012-07-06 20:00:13