Can't add sonarqube server in Eclipse, secure storage fails

2,550 views
Skip to first unread message

kuba.bo...@gmail.com

unread,
Jan 15, 2018, 1:11:18 PM1/15/18
to SonarLint

On the last step of the wizard, when trying to click "Finish" nothing happens.
This is almost certainly a bug in Sonar Eclipse plugin.
It never asks me to login to secure storage as other plugins do.

I tried to trigger a secure storage login via other plugin as a workaround but it doesn't help.


kuba.bo...@gmail.com

unread,
Jan 15, 2018, 1:14:09 PM1/15/18
to SonarLint
Stack traces:

java.lang.IllegalStateException: Unable to store server credentials in secure storage: No password provided.
    at org.sonarlint.eclipse.core.internal.server.ServersManager.storeCredentials(ServersManager.java:264)
    at org.sonarlint.eclipse.core.internal.server.ServersManager.addServer(ServersManager.java:249)
    at org.sonarlint.eclipse.ui.internal.server.wizard.ServerConnectionWizard.performFinish(ServerConnectionWizard.java:220)
    at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:778)
    at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:417)
    at org.eclipse.jface.dialogs.Dialog.lambda$0(Dialog.java:619)
    at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:81)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:249)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5268)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1348)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4522)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4107)
    at org.eclipse.jface.window.Window.runEventLoop(Window.java:818)
    at org.eclipse.jface.window.Window.open(Window.java:794)
    at org.sonarlint.eclipse.ui.internal.bind.BindProjectsPage$4.widgetSelected(BindProjectsPage.java:345)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:249)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5268)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1348)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1374)
    at org.eclipse.swt.widgets.Widget.sendSelectionEvent(Widget.java:1488)
    at org.eclipse.swt.widgets.Link.gtk_button_release_event(Link.java:384)
    at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1956)
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:6169)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5528)
    at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
    at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:9253)
    at org.eclipse.swt.widgets.Display.eventProc(Display.java:1252)
    at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
    at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2112)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4105)
    at org.eclipse.jface.window.Window.runEventLoop(Window.java:818)
    at org.eclipse.jface.window.Window.open(Window.java:794)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.sonarlint.eclipse.ui.internal.command.BindProjectsCommand.execute(BindProjectsCommand.java:66)
    at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:291)
    at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:92)
    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:305)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:239)
    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:487)
    at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)
    at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:431)
    at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.handleWidgetSelection(AbstractContributionItem.java:446)
    at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.lambda$2(AbstractContributionItem.java:472)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5268)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1348)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4522)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4107)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
    at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
    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:653)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1472)
Caused by: org.eclipse.equinox.security.storage.StorageException: No password provided.
    at org.eclipse.equinox.internal.security.storage.SecurePreferences.put(SecurePreferences.java:239)
    at org.eclipse.equinox.internal.security.storage.SecurePreferencesWrapper.put(SecurePreferencesWrapper.java:110)
    at org.sonarlint.eclipse.core.internal.server.ServersManager.storeCredentials(ServersManager.java:260)
    ... 79 more

java.lang.SecurityException: Unable to find default secret collection
    at org.eclipse.equinox.internal.security.linux.LinuxPasswordProvider.saveMasterPassword(Native Method)
    at org.eclipse.equinox.internal.security.linux.LinuxPasswordProvider.getPassword(LinuxPasswordProvider.java:61)
    at org.eclipse.equinox.internal.security.storage.PasswordProviderModuleExt.getPassword(PasswordProviderModuleExt.java:35)
    at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.getModulePassword(SecurePreferencesRoot.java:261)
    at org.eclipse.equinox.internal.security.storage.SecurePreferencesRoot.getPassword(SecurePreferencesRoot.java:226)
    at org.eclipse.equinox.internal.security.storage.SecurePreferences.put(SecurePreferences.java:226)
    at org.eclipse.equinox.internal.security.storage.SecurePreferencesWrapper.put(SecurePreferencesWrapper.java:110)
    at org.sonarlint.eclipse.core.internal.server.ServersManager.storeCredentials(ServersManager.java:260)
    at org.sonarlint.eclipse.core.internal.server.ServersManager.addServer(ServersManager.java:249)
    at org.sonarlint.eclipse.ui.internal.server.wizard.ServerConnectionWizard.performFinish(ServerConnectionWizard.java:220)
    at org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:778)
    at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:417)
    at org.eclipse.jface.dialogs.Dialog.lambda$0(Dialog.java:619)
    at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:81)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:249)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5268)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1348)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4522)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4107)
    at org.eclipse.jface.window.Window.runEventLoop(Window.java:818)
    at org.eclipse.jface.window.Window.open(Window.java:794)
    at org.sonarlint.eclipse.ui.internal.bind.BindProjectsPage$4.widgetSelected(BindProjectsPage.java:345)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:249)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5268)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1348)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1374)
    at org.eclipse.swt.widgets.Widget.sendSelectionEvent(Widget.java:1488)
    at org.eclipse.swt.widgets.Link.gtk_button_release_event(Link.java:384)
    at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:1956)
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:6169)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5528)
    at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
    at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:9253)
    at org.eclipse.swt.widgets.Display.eventProc(Display.java:1252)
    at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
    at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2112)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4105)
    at org.eclipse.jface.window.Window.runEventLoop(Window.java:818)
    at org.eclipse.jface.window.Window.open(Window.java:794)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
    at org.sonarlint.eclipse.ui.internal.command.BindProjectsCommand.execute(BindProjectsCommand.java:66)
    at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:291)
    at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:92)
    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:305)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:239)
    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:487)
    at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)
    at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:431)
    at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.handleWidgetSelection(AbstractContributionItem.java:446)
    at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.lambda$2(AbstractContributionItem.java:472)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5268)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1348)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4522)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4107)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
    at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151)
    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:653)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1472)

Jakub Bocheński

unread,
Jan 15, 2018, 1:24:29 PM1/15/18
to SonarLint
Same thing happens when trying to authenticate via token




Jakub Bocheński

--
You received this message because you are subscribed to a topic in the Google Groups "SonarLint" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/sonarlint/KJ8Q1obA2tM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to sonarlint+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sonarlint/66485be5-0f3c-46f6-9d1d-198a2e27d6f8%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

bhatia...@gmail.com

unread,
Jan 15, 2018, 5:52:02 PM1/15/18
to SonarLint
Facing same issue.

Julien HENRY

unread,
Jan 16, 2018, 3:20:59 AM1/16/18
to bhatia...@gmail.com, SonarLint
Hi,

I'm really surprised the SonarLint behavior is different than other plugins using the secure storage. We are using Eclipse API, so this should be similar.

The error is "Unable to find default secret collection" so here is what you can try:
  - install / run Seahorse (graphical application used to browse secure storage)
  - check that you have a default vault/keyring/wallet (don't know the name): right click on it and click "set as default"

++

Julien Henry | SonarSource

Developer

https://sonarsource.com


--
You received this message because you are subscribed to the Google Groups "SonarLint" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sonarlint+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sonarlint/cda3bc99-047f-4b0e-9619-36b087ca1020%40googlegroups.com.

Jakub Bocheński

unread,
Jan 16, 2018, 7:45:30 AM1/16/18
to Julien HENRY, bhatia...@gmail.com, SonarLint
Hi Julien,
 I might have been jumping to conclusions.
Maybe it's actually this bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=517110 ?

Jakub Bocheński

--
You received this message because you are subscribed to a topic in the Google Groups "SonarLint" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/sonarlint/KJ8Q1obA2tM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to sonarlint+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sonarlint/CAD9wyxFkSOph%2B%3D%2BQavuz11dtjrtMp-P0KGhP%3DMsCpU4zbvWOuQ%40mail.gmail.com.

Julien HENRY

unread,
Jan 16, 2018, 7:53:16 AM1/16/18
to Jakub Bocheński, bhatia...@gmail.com, SonarLint
Yep, looks similar.

I contributed the native libsecret implementation in Eclipse. I'm also using KDE, but it is probably not "clean" and I may have installed some Gnome components. Do you have libsecret installed? Have you tried Seahorse?

Julien Henry | SonarSource

Developer

https://sonarsource.com


Jakub Bocheński

unread,
Jan 16, 2018, 8:45:00 AM1/16/18
to Julien HENRY, SonarLint
I've also tried to disable the "libsecret" integration in Eclipse and just use the UI Prompt provider.

It doesn't work either.

Since the libsecret integration is problematic can we get the plugin to work with Ui Prompt provider at least?




Jakub Bocheński

On Tue, Jan 16, 2018 at 2:16 PM, Jakub Bocheński <kuba.bo...@gmail.com> wrote:
For now I've tried this on a brand new Photon install. The same happens - please find the logs attached.

Currently I have KDEWallet installed. It doesn't list eclipse as connected app though.



Let me see if installing Seahorse helps


Jakub Bocheński

Jakub Bocheński

unread,
Jan 16, 2018, 8:48:52 AM1/16/18
to Julien HENRY, SonarLint
I can see the password is actually stored in the "Contents" view now, but it seems the Sonarlint plugin is not using it when trying to connect.



Jakub Bocheński

mkosm...@gmail.com

unread,
Jan 16, 2018, 9:35:53 AM1/16/18
to SonarLint
The same problem applies to IntelliJ plugin - tried both token-based and user/password auth but with no luck, nothing works, plugin cannot update bindings ("Not authorized. Please check server credentials").

Versions:
SonarLint IntelliJ 3.1.0.2244
IDEA 2017.3.2 (Ultimate Edition)
Build #IU-173.4127.27, built on December 25, 2017
JRE: 1.8.0_152-release-1024-b8 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Linux 4.4.0-109-generic

Jakub Bocheński

unread,
Jan 17, 2018, 8:17:27 AM1/17/18
to SonarLint, Julien HENRY
I've installed Seahorse 3.18.0
I created a new workspace and tried to add a sonar server from scratch.
The same errors happen.

 - Sonarlint won't work on KDE without Seahorse/ibsecret
 - Sonarlint won't work on KDE with Seahorse/libsecret
 - Sonarlint won't work with the alternative "UI prompt provider"



Jakub Bocheński

--
You received this message because you are subscribed to a topic in the Google Groups "SonarLint" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/sonarlint/KJ8Q1obA2tM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to sonarlint+unsubscribe@googlegroups.com.

Julien HENRY

unread,
Jan 18, 2018, 3:56:12 AM1/18/18
to Jakub Bocheński, SonarLint
Hi Jakub,

For sure SonarLint works on KDE with libsecret (I'm using it every day). There might be another missing component.

I will try to reproduce starting from scratch in a VM with a clean KDE distribution.

++

Julien Henry | SonarSource

Developer

https://sonarsource.com


Jakub Bocheński

unread,
Jan 18, 2018, 5:57:11 AM1/18/18
to Julien HENRY, SonarLint
Hi Julien,
 thanks -- but wouldn't it be better to check the UI Promopt provider case first? It also seems to be malfunctioning but it's a much simpler mechanism.

To repeat: with UI Prompt I was able to save the server config, but then the plugin doesn't seem to be using it.




Jakub Bocheński

Julien HENRY

unread,
Jan 18, 2018, 7:01:33 AM1/18/18
to Jakub Bocheński, SonarLint
SonarLint has no control on the secure storage implementation. This is a native Eclipse feature. So from SonarLint point of view, using UI Prompt or libsecure provider is indifferent.

Julien Henry | SonarSource

Developer

https://sonarsource.com


Jakub Bocheński

unread,
Jan 18, 2018, 10:42:05 AM1/18/18
to Julien HENRY, SonarLint
Well but it's the Sonar plugin that tells me in the "Edit connection" wizard that the password is OK. Then Sonar plugin trying to update the violations status tells me the password is invalid.

Jakub Bocheński

Jakub Bocheński

unread,
Jan 23, 2018, 10:56:14 AM1/23/18
to Julien HENRY, SonarLint
Out of the blue the authentication started to work. It's hard to tell now what combination of restart/workspace changes did it.

I have sonar client working on my laptop now. However I don't think it's acceptable to ask all engineers in a large organization to go though that. Maybe something to consider if you want to improve your enterprise offering

Jakub Bocheński

Julien HENRY

unread,
Jan 23, 2018, 11:02:57 AM1/23/18
to Jakub Bocheński, SonarLint
Hi Jakub,

Good to know you are able to use SonarLint.

I would be more than happy to improve SonarLint, but first I would need to know what is the problem. So far I was unable to reproduce, and btw I stay convinced that secure storage is an Eclipse platform feature, not under the responsibility of SonarLint (which doesn't mean I can't help, since I contributed to the libsecret implementation).

++

Julien Henry | SonarSource

Developer

https://sonarsource.com


Jakub Bocheński

unread,
Jan 24, 2018, 9:25:24 AM1/24/18
to Julien HENRY, SonarLint
Hi Julien,
 I'd also like to sort it out but I'm not sure where to start.

I've asked 3 other colleagues to try the IDEA plugin and the results are mixed:
 Linux 4.4.0-109-generic + KDE - authentication failure
 Linux 4.4.0-83-generic + Unity - authentication failure
 Linux 4.4.0-109-generic + Unity - works


 

Jakub Bocheński

Julien HENRY

unread,
Jan 24, 2018, 9:33:57 AM1/24/18
to Jakub Bocheński, SonarLint
Hi Jakub,

The first point would be to not mix different issues :)

We started this thread with an issue of secure storage, which is a pure Eclipse/Linux integration issue. And now you are talking about SonarLint for IntelliJ, which is not using OS secure storage AFAIK. So for me this is a different issue.

++

Julien Henry | SonarSource

Developer

https://sonarsource.com


Jakub Bocheński

unread,
Jan 24, 2018, 9:40:55 AM1/24/18
to Julien HENRY, SonarLint
OK then. Usually I'd open different tickets on public JIRA but that's not possible with sonar.

Anyhow.. I tried a fresh workspace with Oxygen eclipse.
I'm getting the "Unable to find default secret collection" etc. errors again, even though connection to sonarqube is working on the other workspace.

I think this suggests the issue is related to some workspace metadata.

Weirdly when I open seahorse I don't see any passwords listed in the default keyring


PS. I'm using Kubuntu not KDE neon if this makes a difference



Jakub Bocheński

Jakub Bocheński

unread,
Jan 24, 2018, 9:51:07 AM1/24/18
to Julien HENRY, SonarLint
I've tried this with another fresh workspace.
This time I was able to add the server successfully and I see a new "Equinox master password" entry in Seahorse.

Could it be that you need to run Seahorse before starting Eclipse to activate some bindings etc?

Jakub Bocheński

Jakub Bocheński

unread,
Jan 24, 2018, 10:02:50 AM1/24/18
to Julien HENRY, SonarLint
I have some good news on the IDEA front too.

Turns out the problems there were caused by a typo. Using http:// instead of https:// causes our HSTS setup to issue a HTTP redirect. This causes the HTTP client to do a GET request without authentication headers.
As setting up HSTS is a common practice nowadays I think it might be a nice improvement to detect this situation and fail in a more user friendly manner.

Jakub Bocheński

Julien HENRY

unread,
Jan 24, 2018, 10:22:05 AM1/24/18
to Jakub Bocheński, SonarLint

Julien Henry | SonarSource

Developer

https://sonarsource.com


Reply all
Reply to author
Forward
0 new messages