我在使用Jersey 1.0.3的旧项目中使用来自@FormParam
的{{1}}。有没有办法添加一个过滤器来清理和更改我在应用程序中使用的所有jsr311-api-1.0.jar
?
示例代码如下:
@FormParam
答案 0 :(得分:0)
由于JAX-RS 1.0 API(JSR 311)不提供过滤器或拦截器,您可以考虑清理资源方法中的输入。
为此,您可以考虑jsoup。以下是文档提供的示例:
String unsafe =
"<p><a href='http://example.com/' onclick='stealCookies()'>Link</a></p>";
String safe = Jsoup.clean(unsafe, Whitelist.basic());
OWASP Java HTML Sanitizer也可以做到这一点。以下是文档提供的示例:
PolicyFactory policy = new HtmlPolicyBuilder()
.allowElements("a")
.allowUrlProtocols("https")
.allowAttributes("href").onElements("a")
.requireRelNofollowOnLinks()
.toFactory();
String safeHTML = policy.sanitize(untrustedHTML);
如果您愿意使用Jersey API,那么值得一提的是Jersey 1.x提供了您可以实现的ContainerRequestFilter
接口并修改了请求的状态。