如何将“Web服务凭据”传递到我的Web服务端点?

时间:2010-11-29 08:45:00

标签: java spring-ws

我有一个PayloadRootQNameEndpointMappingWss4jSecurityInterceptor和一个自定义CallbackHandler,可以为我执行身份验证。现在的要求是将web服务凭证或至少UsernameToken传递给Web服务以处理特定用例。

我怎样才能做到这一点?有可能将某些东西推到MessageContext并稍后从那里取回来吗?或者我可以从SoapMessage任何暗示中找回它们吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

我使用了UserPasswordAuthenticationToken并在身份验证的#setDetails(Object details)上设置了用户详细信息。然后可以通过

设置身份验证
SecurityContextHolder.getContext().setAuthentication(authentication);

稍后可以从通常使用本地线程实现的SecurityContextHolder中检索。