2012-07-06 51 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