小编Yus*_*suf的帖子

来自Java的soap中的UserNameToken

我正在尝试使用来自Netbeans的gSoap生成的wsdl.Web服务要求传入UserNameToken.当我使用SoapUI中的wsdl(有效)时,它发送:

<wsse:Username>myname</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">mypass</wsse:Password>
Run Code Online (Sandbox Code Playgroud)

但是,当我使用处理程序(如何使用Java JAX-WS添加SOAP Header)从Netbeans尝试它时,如下所示:

            String prefix = "wsse";
            String uri = "http://...wsssecurity...";

            SOAPElement securityElem = factory.createElement("Security",prefix,uri);

                SOAPElement UserNametokenElem = factory.createElement("UserNameToken",prefix,uri);

                    SOAPElement UsernameElem = factory.createElement("wsse:Username");
                    UsernameElem.addTextNode("myname");
                    SOAPElement PasswordElem = factory.createElement("Password");
                    PasswordElem.addTextNode("mypass");

                    UserNametokenElem.addChildElement(UsernameElem);
                    UserNametokenElem.addChildElement(PasswordElem);

                    securityElem.addChildElement(UserNametokenElem);
            SOAPHeader header = envelope.addHeader();
            header.addChildElement(securityElem);
Run Code Online (Sandbox Code Playgroud)

它会像这样生成soap标头:

    <wsse:Security xmlns:wsse="http://...wsssecurity...">
    <wsse:UserNameToken xmlns:wsse="http://...wsssecurity...">
    <Username xmlns="">myname</Username>
    <Password xmlns="">mypass</Password>
    </wsse:UserNameToken>
    </wsse:Security>
Run Code Online (Sandbox Code Playgroud)

这会导致Web服务回复身份验证错误.

因此,我的问题是:

  1. 如何以正确的方式生成UserNameToken(如SoapUi所做的那样)?
  2. 使用处理程序或Apache WSS4J之类的外部WSSE库(可以有人向我展示一些示例代码)是否更好?

java xml ws-security soap usernametoken

1
推荐指数
1
解决办法
1万
查看次数

以java开头的Java类名

我有一个我导入的java类,不幸名为java.net_y.我的代码编译,但当我尝试运行它时,我得到:

Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.net_y
Run Code Online (Sandbox Code Playgroud)

我已经阅读了其他关于尝试覆盖核心java类的线程,比如java.io .....这不是我正在做的....这个外部类我的名字很糟糕.

另一个线程提到反射......不确定是否需要反射.

我能做什么?

java

1
推荐指数
1
解决办法
317
查看次数

标签 统计

java ×2

soap ×1

usernametoken ×1

ws-security ×1

xml ×1