[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] The org.eclipse.equinox.security.secureStorage extension point


Hi Thomas,
It has been tested without SWT; I just re-checked it to be sure - works fine for me.

Regarding your concerns on the optional dependency: Consider that to get to the code you copied you need:

- Not be in a headless run (the secure storage sets an option to suppress prompts for headless runs and JUnits), and
- Have a error in the secure storage where the master password can not be decrypted

Next, if execution path does get to that code, it catches the NoClassDefFoundError and eventually translates it into StorageException(StorageException.NO_PASSWORD).

In principle, VM could be constructed to load class files eagerly. Practically, VMs try to load as little as they can to speed up the processing. To be on the safe side, the usual approach is to isolate code dealing with optional bundles into a separate class. (This is not always necessary but saves a lot of thinking.)

So, that code works without SWT. As for "been thoroughly tested" I'll leave that to the Eclipse QA team to answer.

Back to secure storage: do you still see the problem? If you see it with the current version of the x86 fragment, please open a bug with steps to reproduce.

Thanks,
Oleg Besedin




Thomas Hallgren <thomas@xxxxxxx>
Sent by: equinox-dev-bounces@xxxxxxxxxxx

07/03/2008 10:36 AM

Please respond to
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>

To
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
cc
Subject
Re: [equinox-dev] The        org.eclipse.equinox.security.secureStorage        extension point





Hi Oleg,
I confused the extension id with the class name. I'm using the 3.4
release of the delta pack. The fragment.xml declares:

extension id="WindowsPasswordProvider"

which should be OK since the comparison that is made when finding it is
case insensitive.

Now I'm starting to wonder, could this be caused by the optional
dependency on org.eclipse.swt? This bundle is deliberately omitted from
my setup. I found this piece of code:

try {
   if (!WinCryptoUI.canRecreatePassword())
       return null;
} catch (NoClassDefFoundError exception) {
   return null;
}

and that makes me wonder. Does this really work? Isn't there a fair
chance that the JVM will attempt to resolve the class before it enters
the try/catch? I wouldn't be surprised if the optimizer, while doing
first pass rudimentary inlining, in fact attempts to resolve this class
too early and thus fails. Has this been thoroughly tested without swt
present?

Regards,
Thomas Hallgren


Oleg Besedin wrote:
>
> Hi Thomas,
> You are on the right path; the
> "org.eclipse.equinox.security.win32.x86" fragment provides
> "WindowsPasswordProvider". Did you by chance get an old version of the
> fragment from the incubator?
>
> The up-to-date graduated version is in the
> ":pserver:anonymous@xxxxxxxxxxxxxxx:/cvsroot/eclipse" repository under
> Head/org.eclipse.equinox/security/bundles.
>
> As a side note, we need to discuss during the Equinox meeting if it is
> better to remove old bundles that have been graduated from the
> repository (less confusion) or keep them (more history).
>
> Thanks,
> Oleg Besedin
>
>
>
> *Thomas Hallgren <thomas@xxxxxxx>*
> Sent by: equinox-dev-bounces@xxxxxxxxxxx
>
> 07/03/2008 05:17 AM
> Please respond to
> Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
>
>
>                  
> To
>                  Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
> cc
>                  
> Subject
>                  [equinox-dev] The org.eclipse.equinox.security.secureStorage      
>  extension point
>
>
>
>                  
>
>
>
>
>
> When running headlessly I get an exception with the following message:
>
> "Unable to locate secure storage module
> (org.eclipse.equinox.security.windowspasswordprovider)"
>
> First I thought that I'd forgotten to include the fragment
> org.eclipse.equinox.security.win32.x86 but when I look more closely I
> see that this fragment only adds a module with the id
> "org.eclipse.equinox.internal.security.win32.WinCrypto"
>
> So what bundle is it that defines the module with id
> "org.eclipse.equinox.security.windowspasswordprovider" ?
>
> Regards,
> Thomas Hallgren
>
>
> _______________________________________________
> equinox-dev mailing list
> equinox-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> equinox-dev mailing list
> equinox-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>  

_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev