Apache CXF - 凭证未从 WSS4JOutInterceptor 发送?

2023-12-31

我正在尝试使用 WS-Security UsernameToken 规范 1.0 连接到 Web 服务, 使用阿帕奇cxf 2.4.0。

我从 CXF 文档复制了下面的代码,但得到: org.apache.cxf.ws.policy.PolicyException: No username available

    MyService_Service ss = new MyService_Service(wsdlURL, SERVICE_NAME);
    MyService port = ss.getBasicHttpBindingMyService ();  


    Client client = ClientProxy.getClient(port);
    Endpoint cxfEndpoint = client.getEndpoint();

    Map<String,Object> outProps = new HashMap<String,Object>();
    outProps.put(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN);
    outProps.put(WSHandlerConstants.USER, "USERNAME");
    outProps.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT);
    outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS, 
    ClientPasswordHandler.class.getName());

    WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProps);
    cxfEndpoint.getOutInterceptors().add(wssOut);

我还实现了一个 ClientPasswordHandler 类,再次来自文档,但似乎从未发送用户名(根据错误)。 这是密码处理程序:

public class ClientPasswordHandler implements CallbackHandler {
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
    WSPasswordCallback pc = (WSPasswordCallback) callbacks[0];
    pc.setPassword("Password");     
    }
}

有什么方法可以查看 WSS4Jinterceptor 是否正在应用,以及 UsernameToken 是否已发送?


您是否在客户端收到PolicyException?如果是这样,则可能意味着您正在使用的 WSDL 中有一个 WS-SecucurityPolicy 片段,该片段描述了它想要并期望的 UsernameToken 策略。如果是这种情况,那么您根本不应该配置 WSS4JOutInterceptor。 WS-Policy 运行时将处理它,您只需提供它可能需要的一些属性。

安全政策人员的文档位于:http://cxf.apache.org/docs/ws-securitypolicy.html http://cxf.apache.org/docs/ws-securitypolicy.html

您可能只需要使用:


Map ctx = ((BindingProvider)port).getRequestContext();
ctx.put("ws-security.username", "USERNAME");
ctx.put("ws-security.password", "Password");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache CXF - 凭证未从 WSS4JOutInterceptor 发送? 的相关文章

  • 如何为最终用户方便地启动Java GUI程序

    用户想要从以下位置启动 Java GUI 应用程序Windows 以及一些额外的 JVM 参数 例如 javaw Djava util logging config file logging properties jar MyGUI jar
  • 如何使用 Java 和 Selenium WebDriver 在 C 目录中创建文件夹并需要将屏幕截图保存在该目录中?

    目前正在与硒网络驱动程序和代码Java 我有一种情况 我需要在 C 目录中创建一个文件夹 并在该文件夹中创建我通过 selenium Web 驱动程序代码拍摄的屏幕截图 它需要存储在带有时间戳的文件夹中 如果我每天按计划运行脚本 所有屏幕截
  • WCF 服务引用从 WSDL 生成 void 方法

    这是我第一次尝试使用 WCF 所以我猜我做错了什么 我正在尝试访问 WSDL 定义的肥皂服务http confluence atlassian com rpc soap axis confluenceservice v1 wsdl http
  • Play框架运行应用程序问题

    每当我尝试运行使用以下命令创建的新 Web 应用程序时 我都会收到以下错误Play http www playframework org Error occurred during initialization of VM Could no
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 加速代码 - 3D 数组

    我正在尝试提高我编写的一些代码的速度 我想知道从 3d 整数数组访问数据的效率如何 我有一个数组 int cube new int 10 10 10 我用价值观填充其中 然后我访问这些值数千次 我想知道 由于理论上所有 3d 数组都存储在内
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • JavaMail 只获取新邮件

    我想知道是否有一种方法可以在javamail中只获取新消息 例如 在初始加载时 获取收件箱中的所有消息并存储它们 然后 每当应用程序再次加载时 仅获取新消息 而不是再次重新加载它们 javamail 可以做到这一点吗 它是如何工作的 一些背
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • 如何将 pfx 文件转换为 jks,然后通过使用 wsdl 生成的类来使用它来签署传出的肥皂请求

    我正在寻找一个代码示例 该示例演示如何使用 PFX 证书通过 SSL 访问安全 Web 服务 我有证书及其密码 我首先使用下面提到的命令创建一个 KeyStore 实例 keytool importkeystore destkeystore
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • Android 中麦克风的后台访问

    是否可以通过 Android 手机上的后台应用程序 服务 持续监控麦克风 我想做的一些想法 不断聆听背景中的声音信号 收到 有趣的 音频信号后 执行一些网络操作 如果前台应用程序需要的话 后台应用程序必须能够智能地放弃对麦克风的访问 除非可
  • 在mockito中使用when进行模拟ContextLoader.getCurrentWebApplicationContext()调用。我该怎么做?

    我试图在使用 mockito 时模拟 ContextLoader getCurrentWebApplicationContext 调用 但它无法模拟 here is my source code Mock org springframewo
  • 如何从泛型类调用静态方法?

    我有一个包含静态创建方法的类 public class TestClass public static
  • 捕获的图像分辨率太大

    我在做什么 我允许用户捕获图像 将其存储到 SD 卡中并上传到服务器 但捕获图像的分辨率为宽度 4608 像素和高度 2592 像素 现在我想要什么 如何在不影响质量的情况下获得小分辨率图像 例如我可以获取或设置捕获的图像分辨率为原始图像分
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s

随机推荐

  • 如何去除iOS 7中的UINavigationBar内部阴影?

    内阴影示例 http imageshack us photo my images 20 9hnx png 我试图将导航栏放在另一个导航栏下方 使其看起来像一个高导航栏 但在 iOS 7 中 UINavigationBar 现在在其顶部和底部
  • 如何从 ruby​​ 中的字符串中提取浮点数? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有包含一定数量不同货币的字符串 例
  • 如何将phonegap应用程序直接部署到设备

    我已经设置了一个 Phonegap 3 3 0 项目 并且工作得很好 我可以从 pat 的 cmd 构建一个 APK jamie Hutber 8 c var www sexdiaries co uk sdapp app phonegap
  • 为什么js最接近的方法找不到兄弟元素?

    Note 据我所知closest 方法在 DOM 树中搜索与指定 CSS 选择器匹配的最近元素 当我点击margin两个之间的空间li元素 它返回null 但如果我更换margin bottom 15px with padding bott
  • 在Oracle中计算总时间

    我在Oracle中有这个表 电子邮件和时间是varchar Email Time email protected cdn cgi l email protection 00 10 40 email protected cdn cgi l e
  • “string”的类型不正确(预期为 str,得到了 spacy.tokens.doc.Doc)

    我有一个数据框 train review train review train review 看起来像 0 With all this stuff going down at the moment w 1 The Classic War o
  • Spark SQL 2.0:带有有效 PostgreSQL 查询的 NullPointerException

    我有一个有效的 PostgreSQL 查询 当我将其复制 粘贴到 PSQL 中时 我得到了所需的结果 但是当我使用 Spark SQL 运行时 它会导致NullPointerException 这是导致错误的代码片段 extractData
  • 来自 Python 的 URL 请求

    我有一个正在运行的服务器 它总是在监听value field 我可以通过 URL 从网络浏览器发出请求 Eg http 192 168 1 101 value 1 我怎样才能从Python发出这样的请求 我尝试了上面的代码 但它似乎不起作用
  • 什么可以保护 Android AccountManager 密码不被其他应用读取?

    我正在编写 1 一个在 AccountManager 中存储用户名和密码的应用程序 以及 2 一个单独的后台服务应用程序 用于访问这些凭据以登录我的服务器等 通过使用这个 我发现我能够从服务 应用程序 2 调用 AccountManager
  • MatplotLib 通过轴获取所有注释

    我正在用 Python 和 Tkinter 做一个项目 我可以绘制一组数据 并且还实现了一个在单击鼠标时在绘图上添加注释的功能 但现在我需要我添加的所有注释的列表 有什么办法可以做到这一点吗 这是我添加注释的功能 def onclick s
  • Android 中的卷曲动画(如书本的打开页面)

    我正在开发一个包含许多图像 高清 的应用程序 这些图像将通过分别向左 向右交换屏幕来显示在下一个 上一个图像中 图像的更改应该像打开书页 卷曲动画http www youtube com watch v vOYvaNhSHw http ww
  • 是否可以将 VoiP 呼叫转接至 GSM [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否可以使用 Android 手机作为简单的 GSM 网关 电话将使用 最好 Android 内置 SIP 堆栈接收 VoiP 呼叫
  • 关于python中的global关键字

    coding utf 8 def func print x is x x 2 if I add this line there will be an error why print Changed local x to x x 50 fun
  • 仅获取程序集中定义的类型[重复]

    这个问题在这里已经有答案了 可能的重复 调用 Assembly GetTypes 时如何防止 ReflectionTypeLoadException https stackoverflow com questions 7889228 how
  • ObjectBox 是否有等效的 SQL Like 关键字

    我有一个使用 ObjectBox 在本地存储数据的项目 当我在 SQL 中执行查询时 我可以使用 来获取所有项目 因为我使用 Like 关键字来匹配模式 ObjectBox 是否有等效的方法在查询中执行此操作 不确定您的用例的具体情况 通常
  • 价格正则表达式?

    我正在寻找价格的正则表达式 所以前面应该是X个数字 而不是 最后最多是2个数字 有人可以支持我并发布吗 您将使用什么语言 它应该是这样的 d d 1 2 解释 前面的X号 is d where 表示字符串的开头 d表示一个数字并且 表示一个
  • .htaccess mod-rewrite 与子文件夹身份验证冲突

    我有一个网站 它使用 htaccess 将所有不存在的文件 文件夹的请求重定向到索引文件 RewriteCond REQUEST FILENAME s OR RewriteCond REQUEST FILENAME l OR Rewrite
  • Angular 4 routerLink - 重新加载当前路由

    我想问是否可以使用routerLink再次打开当前页面 我有这个菜单 ul li a Home a li li a Users a li ul 当当前 url 为www domain com users我想单击菜单中的 用户 并刷新此页面
  • 使用 typescript 强类型化 React-Redux 连接

    我在尝试输入反应组件的参数时遇到错误 我想严格输入组件的 props 和 state 上的属性 但是当我使用 Redux 这样做时 当我将 mapStateToProps 传递给 connect 函数时 我收到错误 这是组件代码 impor
  • Apache CXF - 凭证未从 WSS4JOutInterceptor 发送?

    我正在尝试使用 WS Security UsernameToken 规范 1 0 连接到 Web 服务 使用阿帕奇cxf 2 4 0 我从 CXF 文档复制了下面的代码 但得到 org apache cxf ws policy Policy