NXRM UI issue

After logging in with admin, I get the following UI. From all the tutorials I’ve seen, there should be a gear icon for the administrative settings. Am I missing something?

@saqibahmed515 without more detail (logs? is it a fresh install? any UI errors?) I would suggest to make sure you have the correct privileges, please refer to Privileges documentation

Also, version 3.0.1 is particularly old. I would suggest to upgrade if possible.

Hi @mdodgson . Thanks for the response. I tried using the latest (3.24) as well. It was a fresh install and I logged in with the admin credentials from admin.password file. After logging in as admin, I didn’t get the gear icon as well.

Also, I’m unable to change the password on first login as admin.

@saqibahmed515 see if you can use Incognito mode if you are using Chrome, might prove it is not a plugin interfering in some way (adblocker etc)

Failing that, see if there is anything in the nexus.log that might indicate why it isn’t working or any logs from within the browser window (Dev Tools -> Console)

@mdodgson I started nexus 3.24.0.02. Accessed it in incognito mode. There’s no error in the Console of developer tools. I’m attaching the nexus.log file, but nothing seems suspicious in it as well. The exception at the end is thrown when I tried to change the password for the admin user. Other than that, there’s no error. There are a couple of warnings though. I only added WARN and Error log level here. The complete log file with INFO logs was too big to post in this thread.

...
2020-07-08 18:14:46,040+0000 WARN  [FelixStartLevel]  *SYSTEM uk.org.lidalia.sysoutslf4j.context.SysOutOverSLF4JInitialiser - Your logging framework class org.ops4j.pax.logging.slf4j.Slf4jLogger is not known - if it needs access to the standard println methods on the console you will need to register it by calling registerLoggingSystemPackage
2020-07-08 18:14:46,689+0000 WARN  [FelixStartLevel]  *SYSTEM org.eclipse.jetty.server.AbstractConnector - Ignoring deprecated socket close linger time
2020-07-08 18:15:30,225+0000 WARN  [FelixStartLevel]  *SYSTEM com.orientechnologies.orient.core.engine.OMemoryAndLocalPaginatedEnginesInitializer - Not enough physical memory available for DISKCACHE: 1,993MB (heap=1,748MB direct=1,803MB). Set lower Maximum Heap (-Xmx setting on JVM) and restart OrientDB. Now running with DISKCACHE=256MB
2020-07-08 18:15:30,230+0000 INFO  [FelixStartLevel]  *SYSTEM com.orientechnologies.orient.core.engine.OMemoryAndLocalPaginatedEnginesInitializer - OrientDB config DISKCACHE=256MB (heap=1,748MB direct=1,803MB os=1,993MB)
2020-07-08 18:15:30,233+0000 WARN  [FelixStartLevel]  *SYSTEM com.orientechnologies.common.util.OMemory - The sum of the configured JVM maximum heap size (1833435136 bytes) and the OrientDB maximum cache size (268435456 bytes) is larger than the available physical memory size (com.orientechnologies.common.jna.ONative$MemoryLimitResult@2becac6 bytes). That may cause out of memory errors, please tune the configuration up. Use the -Xmx JVM option to lower the JVM maximum heap memory size or storage.diskCache.bufferSize OrientDB option to lower memory requirements of the cache.
2020-07-08 18:15:47,432+0000 WARN  [jetty-main-1]  *SYSTEM org.sonatype.nexus.internal.webresources.WebResourceServiceImpl - Overlapping resources on path /static/fonts/open-sans-v17-latin-600.woff: old=UrlWebResource{url=bundle://215.0:0/static/fonts/open-sans-v17-latin-600.woff, path='/static/fonts/open-sans-v17-latin-600.woff', cacheable=true, contentType='application/font-woff', size=18696, lastModified=1594232102574}, new=UrlWebResource{url=bundle://246.0:0/static/fonts/open-sans-v17-latin-600.woff, path='/static/fonts/open-sans-v17-latin-600.woff', cacheable=true, contentType='application/font-woff', size=18696, lastModified=1594232103190}
2020-07-08 18:15:47,441+0000 WARN  [jetty-main-1]  *SYSTEM org.sonatype.nexus.internal.webresources.WebResourceServiceImpl - Overlapping resources on path /static/fonts/open-sans-v17-latin-700.woff: old=UrlWebResource{url=bundle://215.0:0/static/fonts/open-sans-v17-latin-700.woff, path='/static/fonts/open-sans-v17-latin-700.woff', cacheable=true, contentType='application/font-woff', size=18900, lastModified=1594232102574}, new=UrlWebResource{url=bundle://246.0:0/static/fonts/open-sans-v17-latin-700.woff, path='/static/fonts/open-sans-v17-latin-700.woff', cacheable=true, contentType='application/font-woff', size=18900, lastModified=1594232103190}
2020-07-08 18:15:47,442+0000 WARN  [jetty-main-1]  *SYSTEM org.sonatype.nexus.internal.webresources.WebResourceServiceImpl - Overlapping resources on path /static/fonts/open-sans-v17-latin-italic.woff: old=UrlWebResource{url=bundle://215.0:0/static/fonts/open-sans-v17-latin-italic.woff, path='/static/fonts/open-sans-v17-latin-italic.woff', cacheable=true, contentType='application/font-woff', size=17440, lastModified=1594232102574}, new=UrlWebResource{url=bundle://246.0:0/static/fonts/open-sans-v17-latin-italic.woff, path='/static/fonts/open-sans-v17-latin-italic.woff', cacheable=true, contentType='application/font-woff', size=17440, lastModified=1594232103190}
2020-07-08 18:15:47,443+0000 WARN  [jetty-main-1]  *SYSTEM org.sonatype.nexus.internal.webresources.WebResourceServiceImpl - Overlapping resources on path /static/fonts/open-sans-v17-latin-regular.woff: old=UrlWebResource{url=bundle://215.0:0/static/fonts/open-sans-v17-latin-regular.woff, path='/static/fonts/open-sans-v17-latin-regular.woff', cacheable=true, contentType='application/font-woff', size=18100, lastModified=1594232102574}, new=UrlWebResource{url=bundle://246.0:0/static/fonts/open-sans-v17-latin-regular.woff, path='/static/fonts/open-sans-v17-latin-regular.woff', cacheable=true, contentType='application/font-woff', size=18100, lastModified=1594232103190}
2020-07-08 18:23:31,131+0000 ERROR [qtp1992903439-152]  *UNKNOWN org.sonatype.nexus.extdirect.internal.ExtDirectExceptionHandler - Failed to invoke action method: rapture_Security.authenticationToken, java-method: org.sonatype.nexus.rapture.internal.security.SecurityComponent.authenticationToken
java.lang.Exception: Authentication failed
	at org.sonatype.nexus.rapture.internal.security.SecurityComponent.authenticate(SecurityComponent.java:99)
	at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:23)
	at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:26)
	at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53)
	at org.sonatype.nexus.rapture.internal.security.SecurityComponent.authenticationToken(SecurityComponent.java:114)
	at com.palominolabs.metrics.guice.ExceptionMeteredInterceptor.invoke(ExceptionMeteredInterceptor.java:23)
	at com.palominolabs.metrics.guice.TimedInterceptor.invoke(TimedInterceptor.java:26)
	at org.sonatype.nexus.validation.internal.ValidationInterceptor.invoke(ValidationInterceptor.java:53)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeJavaMethod(DispatcherBase.java:142)
	at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.invokeMethod(DispatcherBase.java:133)
	at org.sonatype.nexus.extdirect.internal.ExtDirectDispatcher.invokeMethod(ExtDirectDispatcher.java:82)
	at com.softwarementors.extjs.djn.router.dispatcher.DispatcherBase.dispatch(DispatcherBase.java:63)
	at com.softwarementors.extjs.djn.router.processor.standard.StandardRequestProcessorBase.dispatchStandardMethod(StandardRequestProcessorBase.java:73)
	at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequest(JsonRequestProcessor.java:502)
	at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.processIndividualRequestsInThisThread(JsonRequestProcessor.java:150)
	at com.softwarementors.extjs.djn.router.processor.standard.json.JsonRequestProcessor.process(JsonRequestProcessor.java:133)
	at com.softwarementors.extjs.djn.router.RequestRouter.processJsonRequest(RequestRouter.java:83)
	at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.processRequest(DirectJNgineServlet.java:632)
	at com.softwarementors.extjs.djn.servlet.DirectJNgineServlet.doPost(DirectJNgineServlet.java:595)
	at org.sonatype.nexus.extdirect.internal.ExtDirectServlet.doPost(ExtDirectServlet.java:137)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286)
	at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:276)
	at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:181)
	at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
	at org.sonatype.nexus.security.SecurityFilter.executeChain(SecurityFilter.java:85)
	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
	at org.sonatype.nexus.security.SecurityFilter.doFilterInternal(SecurityFilter.java:101)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:116)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at com.codahale.metrics.servlet.AbstractInstrumentedFilter.doFilter(AbstractInstrumentedFilter.java:112)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at org.sonatype.nexus.internal.web.ErrorPageFilter.doFilter(ErrorPageFilter.java:79)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at org.sonatype.nexus.internal.web.EnvironmentFilter.doFilter(EnvironmentFilter.java:101)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at org.sonatype.nexus.internal.web.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:98)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at com.google.inject.servlet.DynamicFilterPipeline.dispatch(DynamicFilterPipeline.java:104)
	at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:135)
	at org.sonatype.nexus.bootstrap.osgi.DelegatingFilter.doFilter(DelegatingFilter.java:73)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1602)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1700)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1667)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:239)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:152)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.Server.handle(Server.java:505)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:698)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:804)
	at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.shiro.authc.AuthenticationException: Cannot login with anonymous user
	at org.apache.shiro.nexus.NexusWebSecurityManager.login(NexusWebSecurityManager.java:81)
	at org.apache.shiro.subject.support.DelegatingSubject.login(DelegatingSubject.java:260)
	at org.sonatype.nexus.rapture.internal.security.SecurityComponent.authenticate(SecurityComponent.java:92)
	... 101 common frames omitted
2020-07-08 18:23:31,438+0000 WARN  [qtp1992903439-150]  *UNKNOWN org.sonatype.nexus.siesta.internal.JsonMappingExceptionMapper - (ID 8bd7dbe0-e878-46e8-897b-0bde2fcbaa04) Response: [400] '[ValidationErrorXO{id='authToken', message='Cannot deserialize instance of `java.lang.String` out of START_ARRAY token'}]'; mapped from: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.String` out of START_ARRAY token
 at [Source: (org.eclipse.jetty.server.HttpInputOverHTTP); line: 1, column: 14] (through reference chain: org.sonatype.nexus.coreui.UserAccountPasswordXO["authToken"])

@mdodgson I get the following form in the account tab when I login with admin credentials. This doesn’t seem right. Shouldn’t it be admin username. Changing anything here throws exception. I added the password change exception in the previous post.

Let me write down the steps I took to install nexus for the sake of clarification.

  1. Downloaded the latest tar file.
  2. Extracted tar ball in /opt.
  3. Configured Nginx to serve from port 8081.
  4. Started nexus service from /opt/nexus/bin/nexus start

That’s it.

My relevant Nginx configuration is as follows:

	location / {
		proxy_pass http://localhost:8081;
                 proxy_set_header Host $host;
                 proxy_set_header X-Real-IP $remote_addr;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         }

That’s strange, you seem to be logged in as the anonymous user instead of the admin user? Do you get any weird errors in the browser console or perhaps one of the requests is blocked in the network tab of the brower’s inspector?

Have you tried going to nexus directly on port 8081 rather than using nginx? The nginx config looks correct to me but you might find a difference between accessing it directly and accessing it through nginx.

@mmartz Thanks for the tip. Accessing the UI without nginx (directly on 8081) resolved this problem. Now I’m getting the proper UI.

Time to debug NGINX conf.

There must’ve been errors in the developer tools though. I couldn’t find any.

If you haven’t already seen it, we do have some example nginx configurations documented at Run Behind a Reverse Proxy.