admin password reset

404 views
Skip to first unread message

Andrew Gait

unread,
Jun 12, 2015, 1:53:23 PM6/12/15
to xnat_di...@googlegroups.com
Hi,

I've recently been tasked with trying to recover an xnat deployment that a previous member of staff at my place of work apparently had working.  I've got the Tomcat server running, but when I try to log into the xnat part as "admin" (with a password I am assured is correct) I get a "Login attempt failed" message.

I am presuming that it isn't possible for admin accounts to be disabled - but if it is, then can it be enabled again?  If not, how can I go about resetting the admin password?

I have also tried logging in with other usernames but it would appear from the access and security logs as though they are all currently disabled (probably due to the length of time since the server was last used by anyone).

Many thanks for any help you can give me.

Andy


Herrick, Rick

unread,
Jun 13, 2015, 1:31:55 PM6/13/15
to xnat_di...@googlegroups.com
The easiest way to fix that would just be a standard password reset operation. The catch would be if the admin user account doesn’t have a usable email address (e.g., the address of the person who was running the instance before). In that case you can just change the email address directly in the database:

update xdat_user set email = 'y...@you.com’, enabled = 1, verified = 1 where login = 'admin’;

That should make the user enabled and verified and set the email to an address where you can do the password reset.

-- 

Rick Herrick

Sr. Programmer/Analyst

Neuroinformatics Research Group

Washington University School of Medicine

(314) 740-5961


--
You received this message because you are subscribed to the Google Groups "xnat_discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xnat_discussi...@googlegroups.com.
To post to this group, send email to xnat_di...@googlegroups.com.
Visit this group at http://groups.google.com/group/xnat_discussion.
For more options, visit https://groups.google.com/d/optout.



The material in this message is private and may contain Protected Healthcare Information (PHI). If you are not the intended recipient, be advised that any unauthorized use, disclosure, copying or the taking of any action in reliance on the contents of this information is strictly prohibited. If you have received this email in error, please immediately notify the sender via telephone or return mail.

Andrew Gait

unread,
Jun 15, 2015, 9:37:49 AM6/15/15
to xnat_di...@googlegroups.com
Hi Rick,

Thanks for your help - I have managed to update the email address using the method you suggest (and can see that it has been updated by using "select * from xdat_user").

However I now have a problem when trying to reset the password; it tells me:

An error has occured.


Please contact your IT staff or the application logs for more information.



I have looked at the logs in TOMCAT_HOME/webapps/xnat/logs, and the security log says the following:


2015-06-15 14:28:46,033 [http-8080-1] WARN  org.nrg.xnat.security.XnatProviderManager - Error occurred authenticating login request
org.springframework.security.authentication.DisabledException: User is disabled
    at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider$DefaultPreAuthenticationChecks.check(AbstractUserDetailsAuthenticationProvider.java:310)
    at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:145)
    at org.nrg.xnat.security.XnatProviderManager.doAuthentication(XnatProviderManager.java:165)
    at org.springframework.security.authentication.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:48)
    at org.nrg.xnat.security.XnatAuthenticationFilter.attemptAuthentication(XnatAuthenticationFilter.java:103)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:109)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.nrg.xnat.security.XnatExpiredPasswordFilter.doFilter(XnatExpiredPasswordFilter.java:145)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:109)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:168)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)
2015-06-15 14:28:46,068 [http-8080-1] WARN  org.nrg.xnat.security.XnatProviderManager - Error occurred authenticating login request
org.springframework.security.authentication.DisabledException: User is disabled
    at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider$DefaultPreAuthenticationChecks.check(AbstractUserDetailsAuthenticationProvider.java:310)
    at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:145)
    at org.nrg.xnat.security.XnatProviderManager.doAuthentication(XnatProviderManager.java:165)
    at org.springframework.security.authentication.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:48)
    at org.nrg.xnat.security.XnatAuthenticationFilter.attemptAuthentication(XnatAuthenticationFilter.java:103)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:109)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.nrg.xnat.security.XnatExpiredPasswordFilter.doFilter(XnatExpiredPasswordFilter.java:145)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:109)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:168)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)
2015-06-15 14:28:46,102 [http-8080-1] WARN  org.nrg.xnat.security.XnatProviderManager - Error occurred authenticating login request
org.springframework.security.authentication.DisabledException: User is disabled
    at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider$DefaultPreAuthenticationChecks.check(AbstractUserDetailsAuthenticationProvider.java:310)
    at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:145)
    at org.nrg.xnat.security.XnatProviderManager.doAuthentication(XnatProviderManager.java:165)
    at org.springframework.security.authentication.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:48)
    at org.nrg.xnat.security.XnatAuthenticationFilter.attemptAuthentication(XnatAuthenticationFilter.java:103)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:109)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.nrg.xnat.security.XnatExpiredPasswordFilter.doFilter(XnatExpiredPasswordFilter.java:145)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:109)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:168)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)


Any further ideas?

I note from the "select * from xdat_user" command that all other users are currently disabled.  Could I enable them without having to get into XNAT using a similar databse command to the one we used earlier?

Many thanks,

Andy

Herrick, Rick

unread,
Jun 15, 2015, 9:57:33 AM6/15/15
to xnat_di...@googlegroups.com
Yes, you could just do:

update xdat_user set enabled = 1, verified = 1;

And that will mark all users as enabled and verified. Once you’re logged in, you can go into the UI and disable any accounts you don’t want enabled.

-- 

Rick Herrick

Sr. Programmer/Analyst

Neuroinformatics Research Group

Washington University School of Medicine

(314) 740-5961


From: Andrew Gait <andre...@btinternet.com>
Reply-To: "xnat_di...@googlegroups.com" <xnat_di...@googlegroups.com>
Date: Monday, June 15, 2015 at 8:37 AM
To: "xnat_di...@googlegroups.com" <xnat_di...@googlegroups.com>
Subject: Re: [XNAT Discussion] admin password reset

update xdat_user set email = 'y...@you.com’, enabled = 1, verified = 1

Andrew Gait

unread,
Jun 24, 2015, 6:04:26 AM6/24/15
to xnat_di...@googlegroups.com
Hi Rick,

Still getting the same error even after enabling a user - in fact, it doesn't matter whether the user is enabled or disabled, I get the same result as in my previous post when I attempt to log in; apart from if I try to log in as admin - in that case I don't get anything in the security log file at all, just a line in the access log file saying (e.g.) "2015-06-24 11:02:05,927 - admin 0:0:0:0:0:0:0:1 Authentication FAILED".

If I try to reset either the admin password or the password of any "enabled" user then I get the error message


An error has occured.


Please contact your IT staff or the application logs for more information.


Any ideas?

Andy

Herrick, Rick

unread,
Jun 24, 2015, 11:48:32 AM6/24/15
to xnat_di...@googlegroups.com
Is an error appearing in any of the XNAT logs when that “error has occurred” message is displayed?

-- 

Rick Herrick

Sr. Programmer/Analyst

Neuroinformatics Research Group

Washington University School of Medicine

(314) 740-5961

--
You received this message because you are subscribed to the Google Groups "xnat_discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xnat_discussi...@googlegroups.com.
To post to this group, send email to xnat_di...@googlegroups.com.
Visit this group at http://groups.google.com/group/xnat_discussion.
For more options, visit https://groups.google.com/d/optout.

Andrew Gait

unread,
Jun 30, 2015, 7:43:19 AM6/30/15
to xnat_di...@googlegroups.com
Hi Rick, sorry for the delay in replying - network upgrades have been going on...

An error is appearing in the "turbine" log file as follows below, do you have any idea what might be causing it?

Andy

2015-06-30 12:37:16,743 [http-8080-5] ERROR org.apache.turbine.Turbine - Turbine.handleException:
org.springframework.mail.MailSendException: Failed messages: com.sun.mail.smtp.SMTPSendFailedException: 550 5.7.1 Requested action not taken: message refused
; message exception details (1) are:
Failed message 1:
com.sun.mail.smtp.SMTPSendFailedException: 550 5.7.1 Requested action not taken: message refused

    at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1829)
    at com.sun.mail.smtp.SMTPTransport.finishData(SMTPTransport.java:1634)
    at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:889)
    at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:416)
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:340)
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:336)
    at org.nrg.mail.services.impl.SpringBasedMailServiceImpl.sendMimeMessage(SpringBasedMailServiceImpl.java:85)
    at org.nrg.mail.services.impl.SpringBasedMailServiceImpl.sendMessage(SpringBasedMailServiceImpl.java:49)
    at org.nrg.mail.services.impl.AbstractMailServiceImpl.sendHtmlMessage(AbstractMailServiceImpl.java:253)
    at org.nrg.mail.services.impl.AbstractMailServiceImpl.sendHtmlMessage(AbstractMailServiceImpl.java:289)
    at org.nrg.mail.services.impl.AbstractMailServiceImpl.sendHtmlMessage(AbstractMailServiceImpl.java:517)
    at org.nrg.xdat.turbine.modules.actions.XDATForgotLogin.doPerform(XDATForgotLogin.java:113)
    at org.apache.turbine.modules.actions.VelocityAction.doPerform(VelocityAction.java:46)
    at org.apache.turbine.util.velocity.VelocityActionEvent.perform(VelocityActionEvent.java:82)
    at org.apache.turbine.modules.actions.VelocityAction.perform(VelocityAction.java:72)
    at org.apache.turbine.modules.actions.VelocitySecureAction.perform(VelocitySecureAction.java:61)
    at org.apache.turbine.modules.ActionLoader.exec(ActionLoader.java:96)
    at org.apache.turbine.modules.pages.DefaultPage.doBuild(DefaultPage.java:113)
    at org.apache.turbine.modules.Page.build(Page.java:53)
    at org.apache.turbine.modules.PageLoader.exec(PageLoader.java:98)
    at org.apache.turbine.Turbine.doGet(Turbine.java:751)
    at org.apache.turbine.Turbine.doPost(Turbine.java:846)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:206)
    at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:179)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.nrg.xnat.restlet.util.UpdateExpirationCookie.doFilter(UpdateExpirationCookie.java:38)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:369)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.nrg.xnat.security.XnatArcSpecFilter.doFilter(XnatArcSpecFilter.java:40)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.nrg.xnat.security.XnatBasicAuthenticationFilter.doFilter(XnatBasicAuthenticationFilter.java:134)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:381)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
On Wednesday, June 24, 2015 at 4:48:32 PM UTC+1, Rick Herrick wrote:
Is an error appearing in any of the XNAT logs when that “error has occurred” message is displayed?

-- 

Rick Herrick

Sr. Programmer/Analyst

Neuroinformatics Research Group

Washington University School of Medicine

Herrick, Rick

unread,
Jun 30, 2015, 10:16:20 AM6/30/15
to xnat_di...@googlegroups.com
That’s an issue at the SMTP server. XNAT is finding the server, but the server’s refusing to send the message for some reason. In my experience, that usually means the server requires authorization of some sort, either a username and password or IP whitelisting. It’s hard to say too much more from this end. You probably need to talk to the sys admin who runs the server.

You can test the SMTP transactions a bit using telnet. Here’s a decent description of the procedure (oriented towards Windows, but generally applicable):


That may tell you a bit more about what’s going wrong in there.

-- 

Rick Herrick

Sr. Programmer/Analyst

Neuroinformatics Research Group

Washington University School of Medicine

(314) 740-5961

Reply all
Reply to author
Forward
0 new messages