7.4. 验证接收的凭证


概述

在服务器端,您可以通过使用 Apache CXF 运行时注册回调处理器来验证收到的凭证是否是真实的。您可以自行编写自定义代码来执行凭据验证,或者您可以实施与第三方企业安全系统(如 LDAP 服务器)集成的回调处理程序。

在蓝图 XML 中配置服务器回调处理器

要配置服务器回调处理器来验证从客户端接收的 UsernameToken 凭证,请在服务器的 Blueprint XML 配置中设置 security.callback-handler 属性,如下所示:

<beans ... >
    <jaxws:endpoint
       id="UserNameOverTransport"
       address="https://localhost:9001/UserNameOverTransport"
       serviceName="interop:PingService10"
       endpointName="interop:UserNameOverTransport_IPingService"
       implementor="interop.server.UserNameOverTransport"
       depends-on="tls-settings">

       <jaxws:properties>
            <entry key="security.username" value="Alice"/>
            <entry key="security.callback-handler" value="interop.client.UTPasswordCallback"/>
        </jaxws:properties>

    </jaxws:endpoint>
    ...
</beans>

在上例中,回调处理程序由 UTPasswordCallback 类实施。

实施回调处理程序以检查密码

要实施用于检查服务器端密码的回调处理程序,请实施 javax.security.auth.callback.CallbackHandler 接口。为服务器实施 CallbackHandler 接口的一般方法与为客户端实施 CallbackHandler 类似。提供给服务器端返回的密码的解释不同,但回调处理程序中的密码会与接收的客户端密码进行比较,以验证客户端的凭据。

例如,您可以使用 例 7.2 “UsernameToken Passwords 的回调处理程序” 中显示的示例实现来获取服务器端的密码。在服务器端,WSS4J 运行时会将从回调获取的密码与收到的客户端凭据中的密码进行比较。如果两个密码匹配,则成功验证凭据。

服务器回调处理程序的更现实实施涉及编写与用于存储安全数据(例如,与 LDAP 服务器集成)的第三方数据库集成。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.