这是我开发Web服务的第一次尝试。通过在用户请求的上下文中发送登录名和密码来实现身份验证(使用此示例:http://www.mkyong.com/webservices/jax-ws/application-authentication-with-jax-ws/),然后从每个WS方法调用autentication方法。但在这种情况下,用户通知身份验证失败的方式更好?抛出异常(SOAP错误)?或者还有其他更好的方法吗?
P.S。抱歉我的英文不好
答案 0 :(得分:0)
阿尔乔姆,
SOAP错误大致类似于程序异常,因此我将使用
返回SOAP错误这为您提供了两全其美,简单的和灵活性。简单地说,在Service实现中,您捕获AuthenticationFailureException并使用
构建“SOAP错误响应”因此,在编程时,您已经拥有了所需的一切,可以确切地看到出错的地方,并且在生产中,服务使用者(即表示层)负责处理SOAP错误,以便向用户显示适当的错误信息。确切地说,不应该向用户显示的内容,特别是在故障情形中,应确定为服务。这显然是表示层的责任。
还有一个改进......确保为“身份验证服务当前不可用”的方案使用单独的异常类型(和soap-fault-code),以便用户不会无果而终地重试,从而担心他们忘记了密码,或者被黑客攻击过,或者其他什么。
这是关于Using SOAP Faults的一篇很好的成功MSDN文章,它适用于Java和.NET Web服务。
干杯。基思。