相关疑难解决方法(0)

重置身份验证器凭据

我们在实用程序类中有一个静态方法,它将从URL下载文件.已设置验证器,因此如果需要用户名和密码,则可以检索凭据.问题是,只要凭证有效,第一次成功连接的凭证就会用于后续的每个连接.这是一个问题,因为我们的代码是多用户的,并且由于没有为每个连接检查凭据,因此没有正确凭据的用户可能会下载文件.

这是我们正在使用的代码

private static URLAuthenticator auth;

public static File download(String url, String username, String password, File newFile)
{
    auth.set(username, password);
    Authenticator.setDefault(auth);
    URL fURL = new URL(url);
    OutputStream out = new BufferedOutputStream(new FileOutputStream(newFile));
    URLConnection conn = fURL.openConnection();
    InputStream in = conn.getInputStream();

    try
    {
        copyStream(in, out);
    }
    finally
    {
        if (in != null)
            in.close();
        if (out != null)
            out.close();
    }

    return newFile;
}

public class URLAuthenticator extends Authenticator
{
    private String username;
    private String password;

    public URLAuthenticator(String username, String password)
    {
         set(username, …
Run Code Online (Sandbox Code Playgroud)

java

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

使用基本身份验证从 wsdl url 生成 java 类

我正在尝试从使用基本身份验证的 WSLD 文件生成 java 类。

虽然有很多插件,但我必须使用以下一个: org.jvnet.jaxb2.maven2:maven-jaxb2-plugin

随着wsimport还是wsdl2java我已经找到配置基本身份验证参数的方式。使用maven-jaxb2-plugin我没有运气。

我的配置如下:

       <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <version>0.13.2</version>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <packageName>com.mycompany</packageName>
                        <sourceType>wsdl</sourceType>
                        <specVersion>2.2</specVersion>
                        <schemas>
                            <schema>
                                <url>https://some-url?wsdl</url>
                            </schema>
                        </schemas>

                        <outputDirectory>target/generated-sources/xjb</outputDirectory>
                        <clearOutputDir>false</clearOutputDir>
                        <useActiveProxyAsHttpproxy>true</useActiveProxyAsHttpproxy>
                    </configuration>
                </execution>
            </executions>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,构建失败并显示以下消息:

Caused by: java.io.IOException: Server returned HTTP response code: 401 for URL: https://some-url?wsdl
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:647)
at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:189)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:812)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getSchemaDocument(XSDHandler.java:2275)
... 36 more
Run Code Online (Sandbox Code Playgroud)

关于基本身份验证配置的任何想法?提前致谢!

注意:https://username:pass@some-url?wsdl,由于未经授权的请求,我仍然收到 …

java xjc jaxb2 maven maven-jaxb2-plugin

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

标签 统计

java ×2

jaxb2 ×1

maven ×1

maven-jaxb2-plugin ×1

xjc ×1