0

I have been trying to configure npm to connect to a private registry (Nexus). Unfortunately, the nexus install is protected by Webseal. I have set the registry in the npm config, and when I do a npm login I get the following

npm ERR! registry error parsing json
npm WARN adduser Incorrect username or password
npm WARN adduser You can reset your account by visiting:
npm WARN adduser
npm WARN adduser     https://npmjs.org/forgot
npm WARN adduser
npm ERR! Unexpected token < in JSON at position 0
npm ERR! <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
npm ERR! <!-- Copyright (C) 2000 Tivoli Systems, Inc. -->
npm ERR! <!-- Copyright (C) 1999 IBM Corporation -->
npm ERR! <!-- Copyright (C) 1998 Dascom, Inc. -->
npm ERR! <!-- All Rights Reserved. -->
npm ERR! <!--
npm ERR!      This is a WebSEAL error message template file.  It is used
npm ERR!      by the WebSEAL server to build a response when a particular
npm ERR!      error occurs.  This file can be modified as appropriate.
npm ERR!
npm ERR!      Error details:
npm ERR!
npm ERR!      * Code: 0x38cf0425
npm ERR!      * Text: Unauthorized
npm ERR!
npm ERR! -->
npm ERR! <html>
npm ERR! <head>
npm ERR! <meta http-equiv="Content-Type" content= "text/html; charset=UTF-8">
npm ERR! <!-- Enter Page Title -->
npm ERR! <title>Login Required</title>
npm ERR! </head>
npm ERR! <body bgcolor="#FFFFFF">
npm ERR!
npm ERR! <!-- Enter Message Header -->
npm ERR! <h1><font color="#FF0000">Login Required</font></h1>
npm ERR!
npm ERR! <p><!-- Enter Error Message -->
npm ERR! You must login before you can access the resource you have requested.
npm ERR!
npm ERR! <BR><BR><BR>
npm ERR!
npm ERR! <!-- Provide Error Explanation -->
npm ERR! <H4>Explanation</H4>
npm ERR! <P>The resource you have requested is secured by Access Manager WebSEAL, and in
npm ERR! order to access it, you must first login.
npm ERR! </P>
npm ERR!
npm ERR! <BR><BR><BR>
npm ERR!
npm ERR! <!-- Provide Possible Solution -->
npm ERR! <H4>Solutions</H4>
npm ERR! <P>Log in with a valid account.
npm ERR! </P>
npm ERR!
npm ERR! <br>
npm ERR! <br>
npm ERR! <br>
npm ERR! <!-- Enter Link -->
npm ERR! <a href="/">[BACK BUTTON]</a></p>
npm ERR! </body>
npm ERR! </html>
npm ERR!
npm ERR!

I did use the webseal username and password.

E_net4
  • 27,810
  • 13
  • 101
  • 139

1 Answers1

0

Ok. Here is at least a partial answer. What is needed is webpack dev server with a proxy setup. Here is a snippet of a webpack.config.js..

// If you have to go though a corperate proxy the following is needed.
var HttpsProxyAgent = require('https-proxy-agent');
// corporate proxy to connect to
var proxyServer = 'http://<proxyserver>:<proxyport/';
var proxyAgent = new HttpsProxyAgent(proxyServer);

// Webseal auth, must be in the form of <devUser>:<devPassword>
// I know that having an unencrypted password is HORRIBLE!!!
// Working on something better
var auth = '<websealuser>:<websealpassword';

proxy: {
    '/nexus/**': {
    target: 'https://<target>/',
    secure: false,
    'changeOrigin': true,
    'auth': auth,
    // Comment out the following line if not going through a corperate proxy
    agent: proxyAgent,
    logLevel: 'debug',
    toProxy: true

}

You then have to set npm's registry value to localhost:8080 (or whatever value the webpack dev server will be serving from.

I would also suggest to to set strict-ssl to false.

Start the webpack dev server and try the npm install command. It should proxy the request to the private repository.

I am currently having a timeout problem actually getting the tarball to download, but I am seeing the metadata come across.