0
我需要做什麼非HTTPS請求: 我需要弄清楚如何拒絕不通過TLS任何傳入的HTTP請求(即HTTPS)。理想情況下,如果請求未通過https,我將能夠返回404的http狀態(未找到)。如何拒絕與Apache CXF/JAXRS
我的實現如下所示: 我正在使用Apache cxf/jaxrs實現REST服務。 我使用Spring的IoC來創建服務。
在Spring應用程序上下文文件中的服務定義是這樣的:
<jaxrs:server id="testSvc" address="/">
<jaxrs:serviceBeans>
<ref bean="svcBean"/>
</jaxrs:serviceBeans>
</jaxrs:server>
該服務的Tomcat內運行。
我想使用一個簡單的servlet過濾器或jax-rs過濾器(例如,擴展了javax.ws.rs.container.ContainerRequestFilter的東西)。
有沒有更好的方法來做到這一點?
不錯,但在我的問題是,我將ContainerRequestFilter識別爲*可能的*解決方案,但問一個問題:「有沒有更好的方法來做到這一點?」 我正在尋找一個解決方案,而不是一個servlet過濾器或ContainerRquestFilter。 – mangotang
最簡單的解決方案是在tomcat或您的SSL代理上禁用http協議。但我認爲你需要其他服務。 接受http/https適當的解決方案是一個過濾器。 J2EE標準過濾器不允許爲每個服務器定製。你也可以考慮使用CXF攔截器,但並不是那麼簡單的放棄請求。由於CXF3.0'ContextRequestFilter'可用於這種類型的操作(預處理Message before service方法) – pedrofb
對我而言,不幸的是,我被困在CXF 2.2.12上。 ContextRequestFilter在該版本中不存在。所以,我最終使用了CXF攔截器。它似乎工作正常。 – mangotang