如何配置maven以使用凭据

时间:2011-09-09 20:33:23

标签: maven login connection

我有一个奇怪的情况:我正在使用我住的酒店提供的WIFI网络,我必须在网页上验证用户和密码(如果我去google.com没有身份验证,它将我重定向到登录页面。)

正如您所见,我可以毫无问题地浏览网页。 但是Maven给了我这样的信息:

[WARNING] The POM for javax.inject:javax.inject:jar:1 is invalid, transitive dependencies 
(if any) will not be available: 1 problem was encountered while building the effective model
[FATAL] Non-parseable POM /home/user/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.pom: entity reference name can not contain character =' (position: TEXT seen ...pitality.swisscom.com/index.php/login/pdalogin?pda=1&incompatible=... @4:134)  @ line 4, column 134

查看

的片段
pitality.swisscom.com/index.php/login/pdalogin?pda=1&incompatible=

似乎Maven没有使用相同的经过身份验证的连接。

你知道解决这个问题吗?

非常感谢!

编辑:maven找不到的pom文件的内容是这些

    <html>
      <head>
        <noscript>
          <META HTTP-EQUIV="refresh" content="5;URL=https://index06.hospitality.swisscom.com/index.php/login/pdalogin?pda=1&incompatible=1&NASID=mi-76-134&LgnURL=https%3A%2F%2Fclblgn.sceur.ch%3A8090%2Fgoform%2FHtmlLoginRequest&NASIP=clblgn.sceur.ch&CallerID=00-22-FB-4F-D9-F6&CustIP=192.168.48.170&VLAN=&Location=Hotspot&Port=8090">
        </noscript>
        <script type="text/javascript">
          function setCookieAndReload()
          {
            document.cookie = "human=1" + ";path=/;domain=swisscom.com";
            window.location = "https://index06.hospitality.swisscom.com/login?NASID=mi-76-134&LgnURL=https%3A%2F%2Fclblgn.sceur.ch%3A8090%2Fgoform%2FHtmlLoginRequest&NASIP=clblgn.sceur.ch&CallerID=00-22-FB-4F-D9-F6&CustIP=192.168.48.170&VLAN=&Location=Hotspot&Port=8090&tested=1";
            return;
          }
        </script>
        <script type="text/javascript" src="https://index06.hospitality.swisscom.com/login?NASID=mi-76-134&LgnURL=https%3A%2F%2Fclblgn.sceur.ch%3A8090%2Fgoform%2FHtmlLoginRequest&NASIP=clblgn.sceur.ch&CallerID=00-22-FB-4F-D9-F6&CustIP=192.168.48.170&VLAN=&Location=Hotspot&Port=8090&getjs=1"></script>
      </head>
      <body>
        <p>
          Checking browser compatibility.<br>
          You will be redirected shortly or click <a href="https://index06.hospitality.swisscom.com/index.php/login/pdalogin?pda=1&incompatible=1&NASID=mi-76-134&LgnURL=https%3A%2F%2Fclblgn.sceur.ch%3A8090%2Fgoform%2FHtmlLoginRequest&NASIP=clblgn.sceur.ch&CallerID=00-22-FB-4F-D9-F6&CustIP=192.168.48.170&VLAN=&Location=Hotspot&Port=8090">here</a>.
        </p>
      </body>
       <!-- 
    <?xml version='1.0' encoding='UTF-8'?>
    <WISPAccessGatewayParam xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'   xsi:noNamespaceSchemaLocation='WISPAccessGatewayParam.xsd'>
        <Redirect>
            <MessageType>100</MessageType>
            <ResponseCode>0</ResponseCode>
            <AccessProcedure>1.0</AccessProcedure>
            <LocationName>Hotspot</LocationName>
            <AccessLocation>BackEnd Remote Login</AccessLocation>
            <LoginURL>https://clblgn.sceur.ch:8090/goform/HtmliPassLoginRequest</LoginURL>
            <AbortLoginURL>http://clblgn.sceur.ch:80/goform/HtmliPassLogout</AbortLoginURL>
        </Redirect>
    </WISPAccessGatewayParam>
     --> 

    </html>

2 个答案:

答案 0 :(得分:2)

1:您是否尝试在手动验证之前使用Maven ?如果是,那么您的本地存储库中的文件可能已损坏,并且Maven不够智能以替换它们。我建议删除本地存储库(或将其移动到其他位置)的第一步,并在手动验证后尝试重建。

2:企业网络中是否有可以安装软件的VPN和计算机?如果是,那么在该机器上设置存储库服务器(Nexus易于设置并且是开源版本)可能是值得的。热点通常会无阻碍地传递VPN流量。

3:你觉得设置SSH隧道很舒服吗?如果是,那么您可以使用像Amazon EC2这样的机器来托管Nexus存储库,并使用SSH将localhost:8080运行到该主机。这还需要更改settings.xml。

4:你知道酒店的热点究竟对你的HTTP请求做了什么吗?它们确实不太可能使用修改请求/响应的代理,但如果它们是,并且您知道它们正在做什么,Maven允许您在settings.xml中指定HTTP标头。有关详细信息,请参阅http://maven.apache.org/guides/mini/guide-http-settings.html

就个人而言,我认为#1将解决您的问题。只需确保在进行构建之前手动进行身份验证(并确保定期重新进行身份验证)。

答案 1 :(得分:0)

看起来您酒店的互联网访问受到限制,只允许通过经过身份验证的会话进行访问。当您与ISP合作修复它(或尝试建议的解决方法)时,您可以尝试在别处(可能是您的办公室)构建它,这不是问题,并设置maven以脱机构建(mvn dependency:go-offline )。完成此操作后,除非您更新依赖项版本,否则不需要maven连接到Internet。