0

ホストされている tomcat サーバーにデプロイするために maven cargo プラグインを使用するのに問題があります。サーバーがダイジェスト認証を期待していることを理解しています。バニラ テスト サーバーに問題なくデプロイできます。

curl -u username --digest http://hostname/manager/text/listアプリのリストを返します。

不足している構成はありますか?

4

1 に答える 1

0

Update: Cargo 1.4.10 added support for digest authentication.

I don't think so. I ran into the same problem with Jenkins' Deploy Plugin. After diving into the source AFAICT Cargo only supports Basic authentication for Tomcat: http://svn.codehaus.org/cargo/core/trunk/containers/tomcat/src/main/java/org/codehaus/cargo/container/tomcat/internal/TomcatManager.java

protected String invoke(String path, InputStream data) throws TomcatManagerException,
    IOException
{
    ...

    if (this.username != null)
    {
        String authorization = toAuthorization(this.username, this.password);
        connection.setRequestProperty("Authorization", authorization);
    }
    ...
/**
 * Gets the HTTP Basic Authorization header value for the supplied username and password.
 * 
 * @param username the username to use for authentication
 * @param password the password to use for authentication
 * @return the HTTP Basic Authorization header value
 */
private static String toAuthorization(String username, String password)
{
    StringBuilder buffer = new StringBuilder();
    buffer.append(username).append(':');
    if (password != null)
    {
        buffer.append(password);
    }
    return "Basic " + new String(Base64.encodeBase64(buffer.toString().getBytes()));
}

I'm guessing that this is because the connection is implemented with a plain HttpUrlConnection, so adding support for DIGEST would be a pain.

于 2014-07-09T19:02:30.993 に答える