ORCID integration into DSpace-CRIS

74 views
Skip to first unread message

Eldridge van der Westhuizen

unread,
Oct 27, 2020, 9:49:56 AM10/27/20
to DSpace Technical Support

Good day

I have been struggling to get ORCID integration working with DSpace-Cris. Still currently in the sandbox environment.

Main site: https://dspace.ump.ac.za

My config settings as follows:
authentication-oauth.application-client-id=(as received from ORCID)
authentication-oauth.application-client-secret=(as received from ORCID)
authentication-oauth.orcid-api-url=https://api.sandbox.orcid.org/v3.0 (also tried /v2.0)
authentication-oauth.application-redirect-uri=https://dspace.ump.ac.za/jspui/oauth-login
authentication-oauth.application-authorize-url=https://sandbox.orcid.org/oauth/authorize
authentication-oauth.application-client-scope=/authenticate
authentication-oauth.application-token-url=https://sandbox.orcid.org/oauth/token

Created an account in the sandbox environment on ORCID and can successfully sign in there. Also looked at the profile and all permissions are correct. Trusted organization is there with the correct URL redirect.

As soon as i want to sign in with this account via DSPACE, it redirects me to this message:

ORCID authentication failed. Please try again: ORCID Authentication.

Only information i receive in logfile is:

2020-10-25 10:15:37,579 INFO org.dspace.app.webui.servlet.OAuthAuthenticationServlet @ Retrieved oauthResponse from apache.oltu

2020-10-25 10:15:37,586 INFO org.dspace.authenticate.LDAPAuthentication @ anonymous:session_id=8190E3CEA951427348D0221C77FF85A2:ip_addr=10.10.1.4:auth:attempting trivial auth of user=null

2020-10-25 10:15:37,586 INFO org.dspace.app.webui.servlet.OAuthAuthenticationServlet @ anonymous:session_id=8190E3CEA951427348D0221C77FF85A2:ip_addr=10.10.1.4:failed_login:type=orcid, oauth authentication error

Any advise will be appreciated.    

PS -  I also reached out to ORCID and this is there response:

The problem you're reporting doesn't seem to be related to the ORCID API. I'm able to visit the authorization URL for your application and authorize access to my ORCID record, after which I'm sent to redirect URI appended with the authorization code.

My understanding of DSpace-CRIS is that after authentication, the user should be redirected to a page where they can create a new account in the system or claim an existing account. That redirect to DSpace-CRIS is not happening after authorizing your application.

Thanks
Eldridge

Eldridge van der Westhuizen

unread,
Nov 5, 2020, 3:44:40 PM11/5/20
to DSpace Technical Support
Good day. 

This error is for version 6.3.

 I've done some further research and made changes.  I now get an error on DSPACE page:  Internal System Error , and the following is shown in the log file:


2020-11-05 22:37:40,303 INFO  org.dspace.authenticate.OAuthAuthenticationMethod @ anonymous:session_id=D0B8B7644764A5CB15BD02830A29DFBF:ip_addr=10.10.1.4:autoregister:orcid=0000-0003-0199-8848
2020-11-05 22:37:42,373 WARN  org.dspace.app.webui.servlet.DSpaceServlet @ anonymous:session_id=D0B8B7644764A5CB15BD02830A29DFBF:ip_addr=10.10.1.4:general_jspui_error:java.lang.NullPointerException
java.lang.NullPointerException
        at org.dspace.authenticate.OAuthAuthenticationMethod.authenticate(OAuthAuthenticationMethod.java:177)
        at org.dspace.authenticate.AuthenticationServiceImpl.authenticateInternal(AuthenticationServiceImpl.java:110)
        at org.dspace.authenticate.AuthenticationServiceImpl.authenticate(AuthenticationServiceImpl.java:80)
        at org.dspace.app.webui.servlet.OAuthAuthenticationServlet.doDSPost(OAuthAuthenticationServlet.java:179)
        at org.dspace.app.webui.servlet.OAuthAuthenticationServlet.doDSGet(OAuthAuthenticationServlet.java:72)
        at org.dspace.app.webui.servlet.DSpaceServlet.processRequest(DSpaceServlet.java:126)
        at org.dspace.app.webui.servlet.DSpaceServlet.doGet(DSpaceServlet.java:73)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
        at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:149)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
        at org.dspace.utils.servlet.DSpaceWebappServletFilter.doFilter(DSpaceWebappServletFilter.java:78)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
        at org.apache.coyote.ajp.AbstractAjpProcessor.process(AbstractAjpProcessor.java:873)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:687)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)

Any guidance would be appreciated.  

Eldridge van der Westhuizen

unread,
Nov 6, 2020, 8:56:38 AM11/6/20
to DSpace Technical Support
Hi all

Just an update - the problem in the sandbox environment was with the @mailinator.com account.  The sandbox environment claims it will only work with this domain, but once we tested with any other domain email account, the settings worked.  
Perhaps this will assist anyone else running into the sandbox environment problems.

Regards

Reply all
Reply to author
Forward
0 new messages