Project

General

Profile

feature request #7993

Updated by Patrick Plitzner about 5 years ago

May duplicate #8042 #8402 

 Now that    #7972 is implemented a user lacking the role `ROLE_REMOTING` will not be able to use the Taxeditor. 
 On attempts to access the remoting webservice the taxeditor will receive HTTP response: status code = 403. 

 It makes sense to cover all    status code = 4xx reponses in the same way namely to display a    "Access Denied" dialog  
 instead of letting the exception be caught by the standard error dialog.  

 ~~~ 
 login : andreas 
 editor version : 5.5.0.201901141348 
 server : localhost (localhost-dev) 
 schema version : 5.0.0.0.20180514 
 os : Linux 4.15.0-43-generic amd64 
 java : 1.8.0_131 
 org.eclipse.swt.SWTException: Failed to execute runnable (org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [http://localhost:8081/remoting/term.service]; nested exception is org.apache.http.NoHttpResponseException: Did not receive successful HTTP response: status code = 403, status message = [Access is denied]) 
	 at org.eclipse.swt.SWT.error(SWT.java:4533) 
	 at org.eclipse.swt.SWT.error(SWT.java:4448) 
	 at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185) 
	 at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4536) 
	 at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4154) 
	 at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:165) 
	 at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:369) 
	 at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:481) 
	 at eu.etaxonomy.taxeditor.store.CdmStoreConnector.start(CdmStoreConnector.java:147) 
	 at eu.etaxonomy.taxeditor.store.CdmStore.connect(CdmStore.java:261) 
	 at eu.etaxonomy.taxeditor.store.CdmStore.connect(CdmStore.java:216) 
	 at eu.etaxonomy.taxeditor.ui.dialog.RemotingLoginDialog$9$1.run(RemotingLoginDialog.java:520) 
	 at org.eclipse.ui.internal.UILockListener.doPendingWork(UILockListener.java:162) 
	 at org.eclipse.ui.internal.UISynchronizer$3.run(UISynchronizer.java:154) 
	 at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) 
	 at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) 
	 at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4536) 
	 at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4154) 
	 at eu.etaxonomy.taxeditor.ui.dialog.RemotingLoginDialog.open(RemotingLoginDialog.java:212) 
	 at eu.etaxonomy.taxeditor.handler.e4.ShowRemotingLoginWindowHandlerE4.execute(ShowRemotingLoginWindowHandlerE4.java:38) 
	 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 org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55) 
	 at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:282) 
	 at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:264) 
	 at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132) 
	 at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:152) 
	 at org.eclipse.core.commands.Command.executeWithChecks(Command.java:494) 
	 at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:488) 
	 at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210) 
	 at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:433) 
	 at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.handleWidgetSelection(AbstractContributionItem.java:454) 
	 at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem$3.handleEvent(AbstractContributionItem.java:482) 
	 at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
	 at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5227) 
	 at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1340) 
	 at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4561) 
	 at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4151) 
	 at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1121) 
	 at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) 
	 at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1022) 
	 at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150) 
	 at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:693) 
	 at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) 
	 at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:610) 
	 at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) 
	 at eu.etaxonomy.taxeditor.Application.start(Application.java:24) 
	 at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
	 at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) 
	 at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) 
	 at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388) 
	 at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) 
	 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 org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673) 
	 at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610) 
	 at org.eclipse.equinox.launcher.Main.run(Main.java:1519) 
	 at org.eclipse.equinox.launcher.Main.main(Main.java:1492) 
 Caused by: org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [http://localhost:8081/remoting/term.service]; nested exception is org.apache.http.NoHttpResponseException: Did not receive successful HTTP response: status code = 403, status message = [Access is denied] 
	 at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.convertHttpInvokerAccessException(HttpInvokerClientInterceptor.java:216) 
	 at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:147) 
	 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) 
	 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208) 
	 at com.sun.proxy.$Proxy26.findWithoutFlush(Unknown Source) 
	 at eu.etaxonomy.cdm.api.cache.CdmServiceCacher.findByUuid(CdmServiceCacher.java:93) 
	 at eu.etaxonomy.cdm.api.cache.CdmCacher.load(CdmCacher.java:134) 
	 at eu.etaxonomy.cdm.model.common.DefinedTermBase.getTermByClassAndUUID_aroundBody20(DefinedTermBase.java:540) 
	 at eu.etaxonomy.cdm.model.common.DefinedTermBase.getTermByClassAndUUID(DefinedTermBase.java:1) 
	 at eu.etaxonomy.cdm.model.name.Rank.getTermByUuid(Rank.java:230) 
	 at eu.etaxonomy.cdm.model.name.Rank.initDefaultTerms_aroundBody174(Rank.java:1016) 
	 at eu.etaxonomy.cdm.model.name.Rank.initDefaultTerms(Rank.java:1) 
	 at eu.etaxonomy.taxeditor.store.CdmStoreConnector$1$2.run(CdmStoreConnector.java:210) 
	 at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) 
	 at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) 
	 ... 59 more 
 Caused by: org.apache.http.NoHttpResponseException: Did not receive successful HTTP response: status code = 403, status message = [Access is denied] 
	 at org.springframework.remoting.httpinvoker.HttpComponentsHttpInvokerRequestExecutor.validateResponse(HttpComponentsHttpInvokerRequestExecutor.java:357) 
	 at org.springframework.remoting.httpinvoker.HttpComponentsHttpInvokerRequestExecutor.doExecuteRequest(HttpComponentsHttpInvokerRequestExecutor.java:230) 
	 at eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor.doExecuteRequest(CdmServiceRequestExecutor.java:61) 
	 at org.springframework.remoting.httpinvoker.AbstractHttpInvokerRequestExecutor.executeRequest(AbstractHttpInvokerRequestExecutor.java:138) 
	 at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:194) 
	 at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:176) 
	 at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:144) 
	 ... 72 more 
 ~~~

Back