我们使用Apache CXF构建了一些REST(jax-rs)Web服务.他们返回JSON响应.
我现在需要修改一些请求参数和响应内容.(基本上我们需要对服务返回的一些数据进行编码/加密;当在后续服务调用中将其用作参数时,解码/解密相同的数据.)
看来我这里至少有4个选项:
我之前使用过Servlet过滤器,并且确切地了解如何修改请求参数和响应体,所以我倾向于这一点.但是,我愿意使用CXF Interceptor或JAX-RS过滤器,如果这是使用CXF时解决此问题的更"正确"的方法.但根据文档,我真的不明白如何做到这一点.例如,我是否使用Message对象的setContent方法来更改JSON响应?在这种情况下,格式参数是什么,只是String.class?
这些年来,我不止一次地遇到过这种情况.您有一堆与用户相关的数据要从一个应用程序发送到另一个应用程序.第二个应用程序应该"信任"这个"令牌"并使用其中的数据.令牌中包含时间戳以防止盗窃/重复使用攻击.无论出于何种原因(我们在此不用担心),我们选择了自定义解决方案,而不是像SAML这样的行业标准.
对我来说,数字签名数据似乎就是你想要的.如果数据需要保密,那么您也可以对其进行加密.
但我看到的很多,开发人员将使用对称加密,例如AES.他们假设除了使数据"保密"之外,加密还提供1)消息完整性和2)信任(源的认证).
我是否有理由怀疑这里存在固有的弱点?如果正确管理对称密钥,那么它看起来似乎有效.缺少这个密钥,我当然不知道如何修改加密的令牌,或在拦截几个令牌后启动某种加密攻击.但是,一个更复杂的攻击者能够在这里利用一些东西吗?
对于我们的 REST API,我们有某些 HTTP 请求标头,这些标头将由基础设施组件设置,并且不应在 OpenAPI 规范中发布给使用者。
在我们构建的基于 Spring Web 的实现代码(实现 openapi-generator 生成的接口)中,从 HTTP 请求中检索类似内容的正确方法是什么?例如,接口上未指定的标头。
我在 openapi-generator 本身中没有看到任何选项来将 HttpServletRequest 作为参数添加到生成的方法中。我希望有一种更通用的方法可以在 Spring / Spring Web 中处理它。
cxf ×1
encryption ×1
java ×1
jax-rs ×1
security ×1
spring ×1
spring-mvc ×1
token ×1
web-services ×1