【发布时间】:2016-05-16 10:52:09
【问题描述】:
我想将现有的基于 XML 的 Web 服务转换为 REST Web 服务。虽然服务已经开始工作,但我正在努力实现安全性。
在之前的实现中,我们使用了这样的拦截器(文件ws-server-context.xml):
<jaxws:endpoint id="someService" implementor="..." address="/..." >
<jaxws:inInterceptors>
<bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor" />
<bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">
<constructor-arg>
<map>
<entry key="action" value="UsernameToken" />
<entry key="passwordType" value="PasswordText" />
<entry key="passwordCallbackRef" value-ref="sessionService" />
</map>
</constructor-arg>
</bean>
</jaxws:inInterceptors>
</jaxws:endpoint>
每当调用此端点的地址时,都会调用 bean sessionService 的方法 handle(Callback[] callbacks),它会检查正确的凭据(用户名 + 令牌)。这个 bean 实现了接口CallbackHandler。
如何在 JAX-RS 中实现这种方法?端点是在 web 服务类本身 (@Path) 中定义的,所以我需要在那里使用任何注释吗?如何注册拦截器?
感谢您的帮助!
【问题讨论】:
-
你能解决这个@Philipp吗?
-
实际上我们不会继续这种安全方法,因为我们现在使用的是不同的框架。不过感谢您的帮助!
-
好的。请问你现在用的是什么框架?也可以帮到我!
-
它实际上是我工作的公司的自制框架。它使用 oauth 来保证安全。我还不知道细节,我们还在准备中
标签: java web-services rest jax-rs cxf