2013-01-22 98 views
0

我一直在学习spring-ws一个多小时,我已经建立了一个简单的web服务。spring-ws获取用户名和密码

我使用soapui测试它,并在请求属性中指定用户名和密码。

我的web服务没有安全层,我也不想添加一个。我只需要从请求中提取用户名和密码,以向其他服务发出请求。我不想在我的请求主体中指定用户名或密码。

我想要做的就是从soapui的请求中检索用户名和密码。有没有人知道用户名和密码在请求中?它们是在http头还是soap头中。肥皂标题在soapui中显示为空。

我已经尝试写我自己的拦截器到我的端点,并获得肥皂标题,但它似乎是空的。

我也尝试使用SecurityContextHolder.getContext().getAuthentication(); 检索它们,但是这返回null。

我也尝试询问我的终端上的HttpServletRequest以查看用户详细信息是否在那里,可悲的是没有。

有没有人有这方面的任何想法或良好的知识?

回答

1

由于您的应用程序中没有身份验证,您的服务器不会提示进行身份验证,并且您在soapUI中指定的参数从不使用(不包括在http请求中)。此外,还有用

SecurityContextHolder.getContext().getAuthentication() 

,因为你没有认证不点,没有身份验证的用户,并如你所说返回null。 如果您需要用户名/密码来访问另一个资源,您应该将它们指定为Web服务中的配置参数。

+1

感谢您的回复。可悲的是我必须从请求中提取用户名和密码,让它们在配置中设置不是一个选项。我已经尝试过各种简单的身份验证设置,但可惜没有成功。你能推荐一些很好的教程来展示一个非常简单的设置吗?谢谢 – mpc

+2

我已经为我的项目添加了基本身份验证管理器,现在可以获取用户名和密码。感谢您的洞察力:) – mpc

+0

@MatthewCoole我有同样的问题。你能发布如何为此设置一个基本的认证管理器吗? – babb