在SoapUI中使用授权测试WebLogic 12c SOAP服务时遇错误
我来帮你捋捋这个问题的常见排查点和解决办法,毕竟WebLogic的WS-Security配置确实有不少容易踩的小坑:
先查WebLogic服务器端的配置
- 确认Web服务的安全策略是否正确启用了UserToken验证:你可以检查对应Web服务的
weblogic-webservices.xml配置文件,或者通过WebLogic控制台查看安全策略设置,确保是要求UsernameToken类型的验证(注意区分是否要求加密、Nonce和Created字段)。 - 验证用户身份源配置:要确保你用来测试的用户存在于WebLogic的认证源里(比如内嵌LDAP或者第三方LDAP),并且已经给这个用户分配了WSInvoke角色,否则即使用户密码正确,也会被拒绝访问。
- 查看完整错误日志:你提到的错误信息被截断了,WebLogic的详细错误日志在
domain_home/servers/[你的服务器名]/logs/[你的服务器名].log里,里面会明确说明Token验证失败的原因——比如用户名不存在、密码不匹配,或者Token格式不符合要求。
再检查SoapUI客户端的配置
- 匹配UsernameToken的格式要求:
- 如果WebLogic的安全策略要求带Nonce和Created字段,那你在SoapUI的认证配置里必须勾选「Add Nonce」和「Add Created」选项,而且Nonce必须是Base64编码的随机值,Created的格式要严格遵循ISO 8601标准(比如
2024-05-20T14:30:00Z)。 - 密码类型要对应:如果WebLogic配置的是明文密码验证,SoapUI里就选「PasswordText」;如果是哈希验证(比如SHA1),就要选「PasswordDigest」,同时确保Nonce和Created都正确添加。
- 如果WebLogic的安全策略要求带Nonce和Created字段,那你在SoapUI的认证配置里必须勾选「Add Nonce」和「Add Created」选项,而且Nonce必须是Base64编码的随机值,Created的格式要严格遵循ISO 8601标准(比如
- 核对命名空间:WebLogic默认使用的WSSE命名空间是
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd,你可以通过SoapUI的「Raw」标签查看请求的SOAP Header,如果命名空间不对,也会导致Token验证失败。
容易忽略的细节
- 系统时间同步:如果SoapUI所在机器和WebLogic服务器的时间差超过了WebLogic默认允许的5分钟,带Created字段的UsernameToken会被判定为无效。这个时候要么同步两边的系统时间,要么修改WebLogic的
clock-skew参数放宽时间限制。 - 密码编码一致性:如果WebLogic存储的用户密码是加密后的密文,而你在SoapUI里用了明文密码,或者反过来,都会导致验证失败,务必确保两边的密码处理方式一致。
内容的提问来源于stack exchange,提问作者paspy
相关产品推荐
相关产品推荐

