You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2009/05/27 18:51:30 UTC
svn commit: r779237 - in /directory/studio/trunk:
connection-core/src/main/java/org/apache/directory/studio/connection/core/
connection-core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/
connection-ui/ connection-ui/src/main/java/o...
Author: seelmann
Date: Wed May 27 16:51:29 2009
New Revision: 779237
URL: http://svn.apache.org/viewvc?rev=779237&view=rev
Log:
DIRSTUDIO-263 (Add certificate validation for ldaps and StartTLS):
o Added key store for temporary trusted certificates
o Added preference page to manage trusted certificates
o Moved content of LDAP preference page to Connections preference page
Added:
directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/StudioKeyStoreManager.java (with props)
directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/
directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/CertificateValidationPreferencePage.java (with props)
directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/ConnectionsPreferencePage.java (with props)
directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/Messages.java (with props)
directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/messages.properties (with props)
directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/messages_de.properties (with props)
directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/messages_fr.properties (with props)
directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateListComposite.java (with props)
Modified:
directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/ConnectionCorePlugin.java
directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/Messages.java
directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/StudioTrustManager.java
directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/messages.properties
directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/messages_de.properties
directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/messages_fr.properties
directory/studio/trunk/connection-ui/plugin.properties
directory/studio/trunk/connection-ui/plugin.xml
directory/studio/trunk/connection-ui/plugin_de.properties
directory/studio/trunk/connection-ui/plugin_fr.properties
directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/dialogs/CertificateTrustDialog.java
directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateInfoComposite.java
directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages.properties
directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_de.properties
directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_fr.properties
directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/MainPreferencePage.java
directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/messages.properties
directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/messages_de.properties
directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/messages_fr.properties
Modified: directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/ConnectionCorePlugin.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/ConnectionCorePlugin.java?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/ConnectionCorePlugin.java (original)
+++ directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/ConnectionCorePlugin.java Wed May 27 16:51:29 2009
@@ -48,6 +48,13 @@
*/
public class ConnectionCorePlugin extends Plugin
{
+
+ /** The file name of the permanent trust store */
+ private static final String PERMANENT_TRUST_STORE = "permanent.jks"; //$NON-NLS-1$
+
+ /** The password of the permanent trust store */
+ private static final String PERMANENT_TRUST_STORE_PASSWORD = "changeit"; //$NON-NLS-1$
+
/** The shared instance */
private static ConnectionCorePlugin plugin;
@@ -57,6 +64,12 @@
/** The connection folder manager */
private ConnectionFolderManager connectionFolderManager;
+ /** The permanent trust store */
+ private StudioKeyStoreManager permanentTrustStoreManager;
+
+ /** The session trust store */
+ private StudioKeyStoreManager sessionTrustStoreManager;
+
/** The event runner. */
private EventRunner eventRunner;
@@ -109,6 +122,17 @@
{
connectionFolderManager = new ConnectionFolderManager();
}
+
+ if ( permanentTrustStoreManager == null )
+ {
+ permanentTrustStoreManager = StudioKeyStoreManager.createFileKeyStoreManager( PERMANENT_TRUST_STORE,
+ PERMANENT_TRUST_STORE_PASSWORD );
+ }
+
+ if ( sessionTrustStoreManager == null )
+ {
+ sessionTrustStoreManager = StudioKeyStoreManager.createMemoryKeyStoreManager();
+ }
}
@@ -139,6 +163,16 @@
{
connectionFolderManager = null;
}
+
+ if ( permanentTrustStoreManager != null )
+ {
+ permanentTrustStoreManager = null;
+ }
+
+ if ( sessionTrustStoreManager != null )
+ {
+ sessionTrustStoreManager = null;
+ }
}
@@ -188,6 +222,28 @@
/**
+ * Gets the permanent trust store manager.
+ *
+ * @return the permanent trust store manager
+ */
+ public StudioKeyStoreManager getPermanentTrustStoreManager()
+ {
+ return permanentTrustStoreManager;
+ }
+
+
+ /**
+ * Gets the session trust store manager.
+ *
+ * @return the session trust store manager
+ */
+ public StudioKeyStoreManager getSessionTrustStoreManager()
+ {
+ return sessionTrustStoreManager;
+ }
+
+
+ /**
* Gets the authentication handler
*
* @return
@@ -195,7 +251,7 @@
*/
public IAuthHandler getAuthHandler()
{
- if(authHandler == null)
+ if ( authHandler == null )
{
// if no authentication handler was set a default authentication handler is used
// that only works if the bind password is stored within the connection parameters.
@@ -203,14 +259,16 @@
{
public ICredentials getCredentials( ConnectionParameter connectionParameter )
{
- if ( connectionParameter.getBindPrincipal() == null || "".equals( connectionParameter.getBindPrincipal() ) ) //$NON-NLS-1$
+ if ( connectionParameter.getBindPrincipal() == null
+ || "".equals( connectionParameter.getBindPrincipal() ) ) //$NON-NLS-1$
{
return new Credentials( "", "", connectionParameter ); //$NON-NLS-1$ //$NON-NLS-2$
}
- else if ( connectionParameter.getBindPassword() != null && !"".equals( connectionParameter.getBindPassword() ) ) //$NON-NLS-1$
+ else if ( connectionParameter.getBindPassword() != null
+ && !"".equals( connectionParameter.getBindPassword() ) ) //$NON-NLS-1$
{
- return new Credentials( connectionParameter.getBindPrincipal(), connectionParameter.getBindPassword(),
- connectionParameter );
+ return new Credentials( connectionParameter.getBindPrincipal(), connectionParameter
+ .getBindPassword(), connectionParameter );
}
else
{
@@ -245,7 +303,7 @@
*/
public IReferralHandler getReferralHandler()
{
- if(referralHandler == null)
+ if ( referralHandler == null )
{
// if no referral handler was set a default referral handler is used
// that just cancels referral chasing
@@ -255,7 +313,7 @@
{
// null cancels referral chasing
return null;
- }
+ }
};
}
return referralHandler;
@@ -308,7 +366,7 @@
{
this.certificateHandler = certificateHandler;
}
-
+
/**
* Gets the LDIF modification logger.
@@ -440,9 +498,8 @@
{
// We can't use the PLUGIN_ID constant since loading the plugin.properties file has failed,
// So we're using a default plugin id.
- getLog().log(
- new Status( Status.ERROR, "org.apache.directory.studio.connection.core", Status.OK, //$NON-NLS-1$
- Messages.error__unable_to_get_plugin_properties, e ) );
+ getLog().log( new Status( Status.ERROR, "org.apache.directory.studio.connection.core", Status.OK, //$NON-NLS-1$
+ Messages.error__unable_to_get_plugin_properties, e ) );
}
}
Modified: directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/Messages.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/Messages.java?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/Messages.java (original)
+++ directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/Messages.java Wed May 27 16:51:29 2009
@@ -85,10 +85,10 @@
public static String jobs__close_connections_error_1;
public static String jobs__close_connections_error_n;
- public static String StudioTrustManager_CantAddCertificateToPermanentTrustStore;
+ public static String StudioTrustManager_CantCreateTrustManager;
- public static String StudioTrustManager_CantCreatePermanentTrustManager;
-
- public static String StudioTrustManager_CantLoadPermanentTrustStore;
+ public static String StudioKeyStoreManager_CantAddCertificateToTrustStore;
+ public static String StudioKeyStoreManager_CantRemoveCertificateFromTrustStore;
+ public static String StudioKeyStoreManager_CantReadTrustStore;
}
Added: directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/StudioKeyStoreManager.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/StudioKeyStoreManager.java?rev=779237&view=auto
==============================================================================
--- directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/StudioKeyStoreManager.java (added)
+++ directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/StudioKeyStoreManager.java Wed May 27 16:51:29 2009
@@ -0,0 +1,331 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.studio.connection.core;
+
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+
+
+/**
+ * A wrapper around {@link KeyStore}.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class StudioKeyStoreManager
+{
+ public enum Type
+ {
+ File, Memory
+ }
+
+ /** The type */
+ private Type type;
+
+ /** The filename of the underlying key store, only relevant for type File */
+ private String filename;
+
+ /** The password of the underlying key store, only relevant for type File */
+ private String password;
+
+ /** The in-memory key store, only relevant for type Memory */
+ private KeyStore memoryKeyStore;
+
+
+ /**
+ * Creates a key store manager, backed by a key store on disk.
+ *
+ * @param filename the filename
+ * @param password the password
+ *
+ * @return the key store manager
+ */
+ public static StudioKeyStoreManager createFileKeyStoreManager( String filename, String password )
+ {
+ StudioKeyStoreManager manager = new StudioKeyStoreManager( Type.File, filename, password );
+ manager.filename = filename;
+ manager.password = password;
+ return manager;
+ }
+
+
+ /**
+ * Creates a key store manager, backed by an in-memory key store.
+ *
+ * @return the key store manager
+ */
+ public static StudioKeyStoreManager createMemoryKeyStoreManager()
+ {
+ StudioKeyStoreManager manager = new StudioKeyStoreManager( Type.Memory, null, null );
+ return manager;
+ }
+
+
+ private StudioKeyStoreManager( Type type, String filename, String password )
+ {
+ this.type = type;
+ this.filename = filename;
+ this.password = password;
+ }
+
+
+ /**
+ * Gets the underlying key store.
+ *
+ * @return the key store
+ */
+ public synchronized KeyStore getKeyStore() throws CertificateException
+ {
+ if ( type == Type.File )
+ {
+ return getFileKeyStore();
+ }
+ else
+ {
+ return getMemoryKeyStore();
+ }
+ }
+
+
+ /**
+ * Gets the memory key store.
+ *
+ * @return the memory key store
+ */
+ private KeyStore getMemoryKeyStore() throws CertificateException
+ {
+ if ( memoryKeyStore == null )
+ {
+ try
+ {
+ memoryKeyStore = KeyStore.getInstance( "JKS" ); //$NON-NLS-1$
+ memoryKeyStore.load( null, null );
+ }
+ catch ( Exception e )
+ {
+ throw new CertificateException( Messages.StudioKeyStoreManager_CantReadTrustStore, e );
+ }
+ }
+ return memoryKeyStore;
+ }
+
+
+ /**
+ * Loads the file key store.
+ *
+ * @return the file key store
+ */
+ private KeyStore getFileKeyStore() throws CertificateException
+ {
+ try
+ {
+ KeyStore fileKeyStore = KeyStore.getInstance( "JKS" ); //$NON-NLS-1$
+ File file = ConnectionCorePlugin.getDefault().getStateLocation().append( filename ).toFile();
+ if ( file.exists() && file.isFile() && file.canRead() )
+ {
+ fileKeyStore.load( new FileInputStream( file ), password.toCharArray() );
+ }
+ else
+ {
+ fileKeyStore.load( null, null );
+ }
+
+ return fileKeyStore;
+ }
+ catch ( Exception e )
+ {
+ throw new CertificateException( Messages.StudioKeyStoreManager_CantReadTrustStore, e );
+ }
+ }
+
+
+ /**
+ * Adds the certificate to the key store.
+ *
+ * @param certificate the certificate
+ */
+ public synchronized void addCertificate( X509Certificate certificate ) throws CertificateException
+ {
+ if ( type == Type.File )
+ {
+ addToFileKeyStore( certificate );
+ }
+ else
+ {
+ addToMemoryKeyStore( certificate );
+ }
+ }
+
+
+ /**
+ * Adds the certificate to the memory key store.
+ *
+ * @param certificate the certificate
+ */
+ private void addToMemoryKeyStore( X509Certificate certificate ) throws CertificateException
+ {
+ try
+ {
+ KeyStore memoryKeyStore = getMemoryKeyStore();
+ addToKeyStore( certificate, memoryKeyStore );
+ }
+ catch ( Exception e )
+ {
+ throw new CertificateException( Messages.StudioKeyStoreManager_CantAddCertificateToTrustStore, e );
+ }
+ }
+
+
+ /**
+ * Adds the certificate to the file key store.
+ *
+ * @param certificate the certificate
+ */
+ private void addToFileKeyStore( X509Certificate certificate ) throws CertificateException
+ {
+ try
+ {
+ KeyStore fileKeyStore = getFileKeyStore();
+ addToKeyStore( certificate, fileKeyStore );
+ File file = ConnectionCorePlugin.getDefault().getStateLocation().append( filename ).toFile();
+ fileKeyStore.store( new FileOutputStream( file ), password.toCharArray() );
+ }
+ catch ( Exception e )
+ {
+ throw new CertificateException( Messages.StudioKeyStoreManager_CantAddCertificateToTrustStore, e );
+ }
+ }
+
+
+ private void addToKeyStore( X509Certificate certificate, KeyStore keyStore ) throws Exception
+ {
+ String alias = certificate.getSubjectX500Principal().getName();
+ keyStore.setCertificateEntry( alias, certificate );
+ }
+
+
+ /**
+ * Gets the certificates contained in the key store.
+ *
+ * @return the certificates
+ */
+ public X509Certificate[] getCertificates() throws CertificateException
+ {
+ try
+ {
+ List<X509Certificate> certificateList = new ArrayList<X509Certificate>();
+ KeyStore keyStore = getKeyStore();
+ Enumeration<String> aliases = keyStore.aliases();
+ while ( aliases.hasMoreElements() )
+ {
+ String alias = aliases.nextElement();
+ Certificate certificate = keyStore.getCertificate( alias );
+ if ( certificate instanceof X509Certificate )
+ {
+ certificateList.add( ( X509Certificate ) certificate );
+ }
+ }
+ return certificateList.toArray( new X509Certificate[0] );
+ }
+ catch ( KeyStoreException e )
+ {
+ throw new CertificateException( Messages.StudioKeyStoreManager_CantReadTrustStore, e );
+ }
+ }
+
+
+ /**
+ * Removes the certificate from the key store.
+ *
+ * @param certificate the certificate
+ */
+ public synchronized void removeCertificate( X509Certificate certificate ) throws CertificateException
+ {
+ if ( type == Type.File )
+ {
+ removeFromFileKeyStore( certificate );
+ }
+ else
+ {
+ removeFromMemoryKeyStore( certificate );
+ }
+ }
+
+
+ /**
+ * Removes the certificate from the memory key store.
+ *
+ * @param certificate the certificate
+ */
+ private void removeFromMemoryKeyStore( X509Certificate certificate ) throws CertificateException
+ {
+ try
+ {
+ KeyStore memoryKeyStore = getMemoryKeyStore();
+ removeFromKeyStore( certificate, memoryKeyStore );
+ }
+ catch ( Exception e )
+ {
+ throw new CertificateException( Messages.StudioKeyStoreManager_CantRemoveCertificateFromTrustStore, e );
+ }
+ }
+
+
+ /**
+ * Removes the certificate from the file key store.
+ *
+ * @param certificate the certificate
+ */
+ private void removeFromFileKeyStore( X509Certificate certificate ) throws CertificateException
+ {
+ try
+ {
+ KeyStore fileKeyStore = getFileKeyStore();
+ removeFromKeyStore( certificate, fileKeyStore );
+ File file = ConnectionCorePlugin.getDefault().getStateLocation().append( filename ).toFile();
+ fileKeyStore.store( new FileOutputStream( file ), password.toCharArray() );
+ }
+ catch ( Exception e )
+ {
+ e.printStackTrace();
+ throw new CertificateException( Messages.StudioKeyStoreManager_CantRemoveCertificateFromTrustStore, e );
+ }
+ }
+
+
+ private void removeFromKeyStore( X509Certificate certificate, KeyStore keyStore ) throws Exception
+ {
+ String alias = keyStore.getCertificateAlias( certificate );
+ if ( alias != null )
+ {
+ keyStore.deleteEntry( alias );
+ }
+ }
+}
Propchange: directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/StudioKeyStoreManager.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/StudioTrustManager.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/StudioTrustManager.java?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/StudioTrustManager.java (original)
+++ directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/StudioTrustManager.java Wed May 27 16:51:29 2009
@@ -21,9 +21,6 @@
package org.apache.directory.studio.connection.core.io.jndi;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.security.KeyStore;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
@@ -47,8 +44,6 @@
*/
class StudioTrustManager implements X509TrustManager
{
- private static final char[] PERMANENT_TRUST_STORE_PASSWORD = "changeit".toCharArray(); //$NON-NLS-1$
- private static final String PERMANENT_TRUST_STORE = "permanent.jks"; //$NON-NLS-1$
private X509TrustManager jvmTrustManager;
@@ -96,19 +91,31 @@
}
catch ( CertificateException e2 )
{
- // ask for confirmation
- ICertificateHandler ch = ConnectionCorePlugin.getDefault().getCertificateHandler();
- ICertificateHandler.TrustLevel trustLevel = ch.verifyTrustLevel( chain );
- switch ( trustLevel )
+ try
{
- case Permanent:
- addToPermanentTrustStore( chain );
- break;
- case Session:
- // TODO: put to session trust store???
- break;
- case Not:
- throw new CertificateException( Messages.error__untrusted_certificate, e1 );
+ X509TrustManager sessionTrustManager = getSessionTrustManager();
+ if ( sessionTrustManager == null )
+ {
+ throw e2;
+ }
+ sessionTrustManager.checkServerTrusted( chain, authType );
+ }
+ catch ( CertificateException e3 )
+ {
+ // ask for confirmation
+ ICertificateHandler ch = ConnectionCorePlugin.getDefault().getCertificateHandler();
+ ICertificateHandler.TrustLevel trustLevel = ch.verifyTrustLevel( chain );
+ switch ( trustLevel )
+ {
+ case Permanent:
+ ConnectionCorePlugin.getDefault().getPermanentTrustStoreManager().addCertificate( chain[0] );
+ break;
+ case Session:
+ ConnectionCorePlugin.getDefault().getSessionTrustStoreManager().addCertificate( chain[0] );
+ break;
+ case Not:
+ throw new CertificateException( Messages.error__untrusted_certificate, e1 );
+ }
}
}
}
@@ -127,83 +134,54 @@
/**
* Gets the permanent trust manager, based on the permanent trust store.
*
- * @return the permanent trust manager
+ * @return the permanent trust manager, null if the trust store is empty
*
* @throws CertificateException the certificate exception
*/
private X509TrustManager getPermanentTrustManager() throws CertificateException
{
- KeyStore permanentKeyStore = loadPermanentTrustStore();
- try
- {
- Enumeration<String> aliases = permanentKeyStore.aliases();
- if ( aliases.hasMoreElements() )
- {
- TrustManagerFactory factory = TrustManagerFactory.getInstance( TrustManagerFactory
- .getDefaultAlgorithm() );
- factory.init( permanentKeyStore );
- TrustManager[] permanentTrustManagers = factory.getTrustManagers();
- TrustManager permanentTrustManager = permanentTrustManagers[0];
- return ( X509TrustManager ) permanentTrustManager;
- }
- }
- catch ( Exception e )
- {
- throw new CertificateException( Messages.StudioTrustManager_CantCreatePermanentTrustManager, e );
- }
-
- return null;
+ KeyStore permanentTrustStore = ConnectionCorePlugin.getDefault().getPermanentTrustStoreManager().getKeyStore();
+ X509TrustManager permanentTrustManager = getTrustManager( permanentTrustStore );
+ return permanentTrustManager;
}
/**
- * Loads the permanent trust store.
+ * Gets the session trust manager, based on the session trust store.
+ *
+ * @return the session trust manager, null if the trust store is empty
*
- * @return the permanent trust store
+ * @throws CertificateException the certificate exception
*/
- private KeyStore loadPermanentTrustStore() throws CertificateException
+ private X509TrustManager getSessionTrustManager() throws CertificateException
{
- try
- {
- KeyStore permanentKeyStore = KeyStore.getInstance( "JKS" ); //$NON-NLS-1$
- File file = ConnectionCorePlugin.getDefault().getStateLocation().append( PERMANENT_TRUST_STORE ).toFile();
- if ( file.exists() && file.isFile() && file.canRead() )
- {
- permanentKeyStore.load( new FileInputStream( file ), PERMANENT_TRUST_STORE_PASSWORD );
- }
- else
- {
- permanentKeyStore.load( null, null );
- }
-
- return permanentKeyStore;
- }
- catch ( Exception e )
- {
- throw new CertificateException( Messages.StudioTrustManager_CantLoadPermanentTrustStore, e );
- }
+ KeyStore sessionTrustStore = ConnectionCorePlugin.getDefault().getSessionTrustStoreManager().getKeyStore();
+ X509TrustManager sessionTrustManager = getTrustManager( sessionTrustStore );
+ return sessionTrustManager;
}
- /**
- * Adds the certificate to the permanent trust store.
- *
- * @param chain the certificate chain
- */
- private void addToPermanentTrustStore( X509Certificate[] chain ) throws CertificateException
+ private X509TrustManager getTrustManager( KeyStore trustStore ) throws CertificateException
{
try
{
- KeyStore permanentKeyStore = loadPermanentTrustStore();
- String alias = chain[0].getSubjectX500Principal().getName();
- permanentKeyStore.setCertificateEntry( alias, chain[0] );
- File file = ConnectionCorePlugin.getDefault().getStateLocation().append( PERMANENT_TRUST_STORE ).toFile();
- permanentKeyStore.store( new FileOutputStream( file ), PERMANENT_TRUST_STORE_PASSWORD );
+ Enumeration<String> aliases = trustStore.aliases();
+ if ( aliases.hasMoreElements() )
+ {
+ TrustManagerFactory factory = TrustManagerFactory.getInstance( TrustManagerFactory
+ .getDefaultAlgorithm() );
+ factory.init( trustStore );
+ TrustManager[] permanentTrustManagers = factory.getTrustManagers();
+ TrustManager permanentTrustManager = permanentTrustManagers[0];
+ return ( X509TrustManager ) permanentTrustManager;
+ }
}
catch ( Exception e )
{
- throw new CertificateException( Messages.StudioTrustManager_CantAddCertificateToPermanentTrustStore, e );
+ throw new CertificateException( Messages.StudioTrustManager_CantCreateTrustManager, e );
}
+
+ return null;
}
}
Modified: directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/messages.properties?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/messages.properties (original)
+++ directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/messages.properties Wed May 27 16:51:29 2009
@@ -51,6 +51,8 @@
jobs__close_connections_error_1=Error while closing connection
jobs__close_connections_error_n=Error while closing connections
-StudioTrustManager_CantAddCertificateToPermanentTrustStore=Can't add certificate to permanent trust store.
-StudioTrustManager_CantCreatePermanentTrustManager=Can't create permanent trust manager.
-StudioTrustManager_CantLoadPermanentTrustStore=Can't load permanent trust store.
+StudioTrustManager_CantCreateTrustManager=Can't create trust manager.
+
+StudioKeyStoreManager_CantReadTrustStore=Can't read certificates from key store.
+StudioKeyStoreManager_CantAddCertificateToTrustStore=Can't add certificate to key store.
+StudioKeyStoreManager_CantRemoveCertificateFromTrustStore=Can't remove certificate from key store.
Modified: directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/messages_de.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/messages_de.properties?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/messages_de.properties (original)
+++ directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/messages_de.properties Wed May 27 16:51:29 2009
@@ -50,6 +50,8 @@
jobs__close_connections_error_1=Fehler beim Schliessen der Verbindung
jobs__close_connections_error_n=Fehler beim Schliessen der Verbindungen
-StudioTrustManager_CantAddCertificateToPermanentTrustStore=Fehler beim hinzuf\u00FCgen des Zertifikates zum Zertifikatsspeicher.
-StudioTrustManager_CantCreatePermanentTrustManager=Fehler beim Erzeugen des Trust Managers.
-StudioTrustManager_CantLoadPermanentTrustStore=Fehler beim Laden des Zertifikatsspeichers.
\ No newline at end of file
+StudioTrustManager_CantCreateTrustManager=Fehler beim Erzeugen des Trust Managers.
+
+StudioKeyStoreManager_CantReadTrustStore=Fehler beim Lesen der Zertifikate aus dem Zertifikatsspeicher.
+StudioKeyStoreManager_CantAddCertificateToTrustStore=Fehler beim Hinzuf\u00FCgen des Zertifikates zum Zertifikatsspeicher.
+StudioKeyStoreManager_CantRemoveCertificateFromTrustStore=Fehler beim L\u00FCschen des Zertifikates aus dem Zertifikatsspeicher.
Modified: directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/messages_fr.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/messages_fr.properties?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/messages_fr.properties (original)
+++ directory/studio/trunk/connection-core/src/main/java/org/apache/directory/studio/connection/core/messages_fr.properties Wed May 27 16:51:29 2009
@@ -1,4 +1,4 @@
-# Licensed to the Apache Software Foundation (ASF) under one
+# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
@@ -51,6 +51,8 @@
jobs__close_connections_error_1=Une erreur est survenue lors de la fermeture de la connexion
jobs__close_connections_error_n=Une erreur est survenue lors de la fermeture des connexions
-StudioTrustManager_CantAddCertificateToPermanentTrustStore=Impossible d'ajouter le certificat au magasin de confiance permanent.
-StudioTrustManager_CantCreatePermanentTrustManager=Impossible de cr\u00E9er le magasin de confiance permanent.
-StudioTrustManager_CantLoadPermanentTrustStore=Impossible de charger le magasin de confiance permanent.
\ No newline at end of file
+StudioTrustManager_CantCreateTrustManager=Impossible de cr\u00E9er le magasin de confiance.
+
+StudioKeyStoreManager_CantReadTrustStore=Impossible de charger le magasin de confiance permanent.
+StudioKeyStoreManager_CantAddCertificateToTrustStore=Impossible d'ajouter le certificat au magasin de confiance.
+StudioKeyStoreManager_CantRemoveCertificateFromTrustStore=TODO:Can't remove certificate from key store.
Modified: directory/studio/trunk/connection-ui/plugin.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-ui/plugin.properties?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/connection-ui/plugin.properties (original)
+++ directory/studio/trunk/connection-ui/plugin.properties Wed May 27 16:51:29 2009
@@ -41,4 +41,10 @@
Cmd_Copy_id=org.apache.directory.studio.ldapbrowser.action.copy
Cmd_Paste_id=org.apache.directory.studio.ldapbrowser.action.paste
Cmd_Delete_id=org.apache.directory.studio.ldapbrowser.action.delete
-Cmd_Properties_id=org.apache.directory.studio.ldapbrowser.action.properties
\ No newline at end of file
+Cmd_Properties_id=org.apache.directory.studio.ldapbrowser.action.properties
+
+PrefPage_MainPreferencePage_id=org.apache.directory.studio.ldapbrowser.preferences.MainPreferencePage
+PrefPage_ConnectionsPreferencePage_id=org.apache.directory.studio.connection.preferences.ConnectionsPreferencePage
+PrefPage_ConnectionsPreferencePage_name=Connections
+PrefPage_CertificateValidationPreferencePage_id=org.apache.directory.studio.connection.preferences.CertificateValidationPreferencePage
+PrefPage_CertificateValidationPreferencePage_name=Certificate Validation
Modified: directory/studio/trunk/connection-ui/plugin.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-ui/plugin.xml?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/connection-ui/plugin.xml (original)
+++ directory/studio/trunk/connection-ui/plugin.xml Wed May 27 16:51:29 2009
@@ -56,5 +56,20 @@
description="%ConnectionParameterPage_AuthenticationParameterPage_description"
id="%ConnectionParameterPage_AuthenticationParameterPage_id"
name="%ConnectionParameterPage_AuthenticationParameterPage_name"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="%PrefPage_MainPreferencePage_id"
+ class="org.apache.directory.studio.connection.ui.preferences.ConnectionsPreferencePage"
+ id="%PrefPage_ConnectionsPreferencePage_id"
+ name="%PrefPage_ConnectionsPreferencePage_name">
+ </page>
+ <page
+ category="%PrefPage_ConnectionsPreferencePage_id"
+ class="org.apache.directory.studio.connection.ui.preferences.CertificateValidationPreferencePage"
+ id="%PrefPage_CertificateValidationPreferencePage_id"
+ name="%PrefPage_CertificateValidationPreferencePage_name">
+ </page>
</extension>
</plugin>
Modified: directory/studio/trunk/connection-ui/plugin_de.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-ui/plugin_de.properties?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/connection-ui/plugin_de.properties (original)
+++ directory/studio/trunk/connection-ui/plugin_de.properties Wed May 27 16:51:29 2009
@@ -27,3 +27,5 @@
ConnectionParameterPage_AuthenticationParameterPage_name=Authentifizierung
ConnectionParameterPage_AuthenticationParameterPage_description=Bitte w\u00E4hlen Sie eine Authentifizierungs-Methode und geben Sie ihre Anmeldedaten ein.
+PrefPage_ConnectionsPreferencePage_name=Verbindungen
+PrefPage_CertificateValidationPreferencePage_name=Zertifikatsvalidierung
\ No newline at end of file
Modified: directory/studio/trunk/connection-ui/plugin_fr.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-ui/plugin_fr.properties?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/connection-ui/plugin_fr.properties (original)
+++ directory/studio/trunk/connection-ui/plugin_fr.properties Wed May 27 16:51:29 2009
@@ -26,3 +26,6 @@
ConnectionParameterPage_AuthenticationParameterPage_name=Authentification
ConnectionParameterPage_AuthenticationParameterPage_description=Veuillez s\u00E9lectionner une m\u00E9thode d'authentification et renseigner les \u00E9l\u00E9ments d'authentification.
+
+PrefPage_ConnectionsPreferencePage_name=Connexions
+PrefPage_CertificateValidationPreferencePage_name=TODO:Certificate Validation
Modified: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/dialogs/CertificateTrustDialog.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/dialogs/CertificateTrustDialog.java?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/dialogs/CertificateTrustDialog.java (original)
+++ directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/dialogs/CertificateTrustDialog.java Wed May 27 16:51:29 2009
@@ -141,13 +141,6 @@
{
new CertificateInfoDialog( getShell(), certificateChain ).open();
}
-
-
- @Override
- public void widgetDefaultSelected( SelectionEvent e )
- {
- new CertificateInfoDialog( getShell(), certificateChain ).open();
- }
} );
trustNotButton = BaseWidgetUtils.createRadiobutton( composite, Messages
Added: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/CertificateValidationPreferencePage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/CertificateValidationPreferencePage.java?rev=779237&view=auto
==============================================================================
--- directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/CertificateValidationPreferencePage.java (added)
+++ directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/CertificateValidationPreferencePage.java Wed May 27 16:51:29 2009
@@ -0,0 +1,156 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.directory.studio.connection.ui.preferences;
+
+
+import org.apache.directory.studio.connection.core.ConnectionCoreConstants;
+import org.apache.directory.studio.connection.core.ConnectionCorePlugin;
+import org.apache.directory.studio.connection.ui.ConnectionUIPlugin;
+import org.apache.directory.studio.connection.ui.widgets.BaseWidgetUtils;
+import org.apache.directory.studio.connection.ui.widgets.CertificateListComposite;
+import org.eclipse.core.runtime.Preferences;
+import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+
+/**
+ * The certificate validation preference page is used to manage trusted certificates.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class CertificateValidationPreferencePage extends PreferencePage implements IWorkbenchPreferencePage
+{
+
+ /** The verify certificates button. */
+ private Button verifyCertificatesButton;
+
+ /** The tab folder. */
+ private TabFolder tabFolder;
+
+ /** The composite containing permanent trusted certificates */
+ private CertificateListComposite permanentCLComposite;
+
+ /** The composite containing temporary trusted certificates */
+ private CertificateListComposite sessionCLComposite;
+
+
+ /**
+ *
+ * Creates a new instance of MainPreferencePage.
+ */
+ public CertificateValidationPreferencePage()
+ {
+ super( Messages.getString( "CertificateValidationPreferencePage.CertificateValidation" ) ); //$NON-NLS-1$
+ super.setPreferenceStore( ConnectionUIPlugin.getDefault().getPreferenceStore() );
+ //super.setDescription( Messages.getString( "SecurityPreferencePage.GeneralSettings" ) ); //$NON-NLS-1$
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void init( IWorkbench workbench )
+ {
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ protected Control createContents( Composite parent )
+ {
+ Composite composite = BaseWidgetUtils.createColumnContainer( parent, 1, 1 );
+
+ // enable/disable certificate validation
+ Preferences preferences = ConnectionCorePlugin.getDefault().getPluginPreferences();
+ boolean validateCertificates = preferences
+ .getBoolean( ConnectionCoreConstants.PREFERENCE_VALIDATE_CERTIFICATES );
+ verifyCertificatesButton = BaseWidgetUtils.createCheckbox( composite, Messages
+ .getString( "CertificateValidationPreferencePage.ValidateCertificates" ), 1 ); //$NON-NLS-1$
+ verifyCertificatesButton.setSelection( validateCertificates );
+ verifyCertificatesButton.addSelectionListener( new SelectionAdapter()
+ {
+ @Override
+ public void widgetSelected( SelectionEvent e )
+ {
+ tabFolder.setEnabled( verifyCertificatesButton.getSelection() );
+ }
+ } );
+
+ // certificate list widget
+ tabFolder = new TabFolder( composite, SWT.TOP );
+ GridLayout mainLayout = new GridLayout();
+ mainLayout.marginWidth = 0;
+ mainLayout.marginHeight = 0;
+ tabFolder.setLayout( mainLayout );
+ tabFolder.setLayoutData( new GridData( GridData.FILL, GridData.FILL, true, true ) );
+
+ permanentCLComposite = new CertificateListComposite( tabFolder, SWT.NONE );
+ permanentCLComposite.setInput( ConnectionCorePlugin.getDefault().getPermanentTrustStoreManager() );
+ TabItem permanentTab = new TabItem( tabFolder, SWT.NONE, 0 );
+ permanentTab.setText( Messages.getString( "CertificateValidationPreferencePage.PermanentTrusted" ) ); //$NON-NLS-1$
+ permanentTab.setControl( permanentCLComposite );
+
+ sessionCLComposite = new CertificateListComposite( tabFolder, SWT.NONE );
+ sessionCLComposite.setInput( ConnectionCorePlugin.getDefault().getSessionTrustStoreManager() );
+ TabItem sessionTab = new TabItem( tabFolder, SWT.NONE, 1 );
+ sessionTab.setText( Messages.getString( "CertificateValidationPreferencePage.TemporaryTrusted" ) ); //$NON-NLS-1$
+ sessionTab.setControl( sessionCLComposite );
+
+ tabFolder.setEnabled( verifyCertificatesButton.getSelection() );
+ return composite;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void performDefaults()
+ {
+ verifyCertificatesButton.setSelection( ConnectionCorePlugin.getDefault().getPluginPreferences()
+ .getDefaultBoolean( ConnectionCoreConstants.PREFERENCE_VALIDATE_CERTIFICATES ) );
+ super.performDefaults();
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean performOk()
+ {
+ ConnectionCorePlugin.getDefault().getPluginPreferences().setValue(
+ ConnectionCoreConstants.PREFERENCE_VALIDATE_CERTIFICATES, verifyCertificatesButton.getSelection() );
+ return true;
+ }
+
+}
Propchange: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/CertificateValidationPreferencePage.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/ConnectionsPreferencePage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/ConnectionsPreferencePage.java?rev=779237&view=auto
==============================================================================
--- directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/ConnectionsPreferencePage.java (added)
+++ directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/ConnectionsPreferencePage.java Wed May 27 16:51:29 2009
@@ -0,0 +1,118 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.directory.studio.connection.ui.preferences;
+
+
+import org.apache.directory.studio.connection.core.ConnectionCoreConstants;
+import org.apache.directory.studio.connection.core.ConnectionCorePlugin;
+import org.apache.directory.studio.connection.ui.ConnectionUIPlugin;
+import org.apache.directory.studio.connection.ui.widgets.BaseWidgetUtils;
+import org.eclipse.core.runtime.Preferences;
+import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+
+/**
+ * The connections preference page contains general settings for LDAP connections.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class ConnectionsPreferencePage extends PreferencePage implements IWorkbenchPreferencePage
+{
+
+ private Text jndiLdapContextProvider;
+
+
+ /**
+ * Creates a new instance of ConnectionsPreferencePage.
+ */
+ public ConnectionsPreferencePage()
+ {
+ super( Messages.getString( "ConnectionsPreferencePage.Connections" ) ); //$NON-NLS-1$
+ super.setPreferenceStore( ConnectionUIPlugin.getDefault().getPreferenceStore() );
+ super.setDescription( Messages.getString( "ConnectionsPreferencePage.GeneralSettings" ) ); //$NON-NLS-1$
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void init( IWorkbench workbench )
+ {
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ protected Control createContents( Composite parent )
+ {
+ Composite composite = BaseWidgetUtils.createColumnContainer( parent, 1, 1 );
+
+ BaseWidgetUtils.createSpacer( composite, 1 );
+ BaseWidgetUtils.createSpacer( composite, 1 );
+
+ Group group = BaseWidgetUtils.createGroup( BaseWidgetUtils.createColumnContainer( composite, 1, 1 ), Messages
+ .getString( "ConnectionsPreferencePage.ContextProvider" ), 1 ); //$NON-NLS-1$
+
+ Preferences preferences = ConnectionCorePlugin.getDefault().getPluginPreferences();
+ String ldapCtxFactory = preferences.getString( ConnectionCoreConstants.PREFERENCE_LDAP_CONTEXT_FACTORY );
+ String defaultLdapCtxFactory = preferences
+ .getDefaultString( ConnectionCoreConstants.PREFERENCE_LDAP_CONTEXT_FACTORY );
+ String note = NLS.bind(
+ Messages.getString( "ConnectionsPreferencePage.SystemDetectedContextFactory" ), defaultLdapCtxFactory ); //$NON-NLS-1$
+
+ jndiLdapContextProvider = BaseWidgetUtils.createText( group, ldapCtxFactory, 1 );
+ BaseWidgetUtils.createWrappedLabel( group, note, 1 );
+
+ return composite;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void performDefaults()
+ {
+ jndiLdapContextProvider.setText( ConnectionCorePlugin.getDefault().getPluginPreferences().getDefaultString(
+ ConnectionCoreConstants.PREFERENCE_LDAP_CONTEXT_FACTORY ) );
+ super.performDefaults();
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean performOk()
+ {
+ ConnectionCorePlugin.getDefault().getPluginPreferences().setValue(
+ ConnectionCoreConstants.PREFERENCE_LDAP_CONTEXT_FACTORY, jndiLdapContextProvider.getText() );
+ return true;
+ }
+
+}
Propchange: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/ConnectionsPreferencePage.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/Messages.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/Messages.java?rev=779237&view=auto
==============================================================================
--- directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/Messages.java (added)
+++ directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/Messages.java Wed May 27 16:51:29 2009
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.directory.studio.connection.ui.preferences;
+
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+
+public class Messages
+{
+ private static final String BUNDLE_NAME = "org.apache.directory.studio.connection.ui.preferences.messages"; //$NON-NLS-1$
+
+ private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle( BUNDLE_NAME );
+
+
+ private Messages()
+ {
+ }
+
+
+ public static String getString( String key )
+ {
+ try
+ {
+ return RESOURCE_BUNDLE.getString( key );
+ }
+ catch ( MissingResourceException e )
+ {
+ return '!' + key + '!';
+ }
+ }
+}
Propchange: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/Messages.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/messages.properties?rev=779237&view=auto
==============================================================================
--- directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/messages.properties (added)
+++ directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/messages.properties Wed May 27 16:51:29 2009
@@ -0,0 +1,25 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+ConnectionsPreferencePage.Connections=Connections
+ConnectionsPreferencePage.GeneralSettings=General settings for LDAP connections:
+ConnectionsPreferencePage.ContextProvider=JNDI LDAP context provider
+ConnectionsPreferencePage.SystemDetectedContextFactory=Note: The system detected ''{0}''.
+
+CertificateValidationPreferencePage.CertificateValidation=Certificate Validation
+CertificateValidationPreferencePage.ValidateCertificates=Validate certificates for secure LDAP connections
+CertificateValidationPreferencePage.PermanentTrusted=Permanent Trusted
+CertificateValidationPreferencePage.TemporaryTrusted=Temporary Trusted
\ No newline at end of file
Propchange: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/messages.properties
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/messages_de.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/messages_de.properties?rev=779237&view=auto
==============================================================================
--- directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/messages_de.properties (added)
+++ directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/messages_de.properties Wed May 27 16:51:29 2009
@@ -0,0 +1,27 @@
+#Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+CertificateValidationPreferencePage.CertificateValidation = Zertifikatsvalidierung
+CertificateValidationPreferencePage.PermanentTrusted = Dauerhaft vertrauensw\u00FCrdig
+CertificateValidationPreferencePage.TemporaryTrusted = Vor\u00FCbergehend vertrauensw\u00FCrdig
+CertificateValidationPreferencePage.ValidateCertificates = Zertifikate f\u00FCr sichere LDAP Verbindungen validieren
+
+ConnectionsPreferencePage.Connections = Verbindungen
+ConnectionsPreferencePage.ContextProvider = JNDI LDAP Context Provider
+ConnectionsPreferencePage.GeneralSettings = Allgemeine Einstellungen f\u00FCr LDAP Verbindungen:
+ConnectionsPreferencePage.SystemDetectedContextFactory = Hinweis: Das System hat ''{0}'' ermittelt.
Propchange: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/messages_de.properties
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/messages_fr.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/messages_fr.properties?rev=779237&view=auto
==============================================================================
--- directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/messages_fr.properties (added)
+++ directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/messages_fr.properties Wed May 27 16:51:29 2009
@@ -0,0 +1,27 @@
+#Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+CertificateValidationPreferencePage.CertificateValidation = TODO:Certificate Validation
+CertificateValidationPreferencePage.PermanentTrusted = TODO:Permanent Trusted
+CertificateValidationPreferencePage.TemporaryTrusted = TODO:Temporary Trusted
+CertificateValidationPreferencePage.ValidateCertificates = Valider les certificats des connexions LDAP s\u00E9curis\u00E9es
+
+ConnectionsPreferencePage.Connections = Connexions
+ConnectionsPreferencePage.ContextProvider = Fournisseur de contexte JNDI LDAP
+ConnectionsPreferencePage.GeneralSettings = R\u00E9glages g\u00E9n\u00E9raux pour les connexions LDAP:
+ConnectionsPreferencePage.SystemDetectedContextFactory = Note: Le syst\u00E8me a d\u00E9tect\u00E9 ''{0}''.
Propchange: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/preferences/messages_fr.properties
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateInfoComposite.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateInfoComposite.java?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateInfoComposite.java (original)
+++ directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateInfoComposite.java Wed May 27 16:51:29 2009
@@ -248,7 +248,6 @@
{
public void selectionChanged( SelectionChangedEvent event )
{
- event.getSelection();
populateCertificateTree();
}
} );
Added: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateListComposite.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateListComposite.java?rev=779237&view=auto
==============================================================================
--- directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateListComposite.java (added)
+++ directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateListComposite.java Wed May 27 16:51:29 2009
@@ -0,0 +1,222 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.studio.connection.ui.widgets;
+
+
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+import java.util.Iterator;
+
+import org.apache.directory.studio.connection.core.StudioKeyStoreManager;
+import org.apache.directory.studio.connection.ui.dialogs.CertificateInfoDialog;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+
+
+/**
+ * This composite displays a list of certificates and buttons
+ * to add, delete and view certificates.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+public class CertificateListComposite extends Composite
+{
+
+ private StudioKeyStoreManager keyStoreManager;
+ private Composite container;
+ private TableViewer tableViewer;
+ private Button viewButton;
+ private Button addButton;
+ private Button removeButton;
+
+
+ /**
+ * Creates a new instance of CertificateInfoComposite.
+ *
+ * @param parent
+ * @param style
+ */
+ public CertificateListComposite( Composite parent, int style )
+ {
+ super( parent, style );
+ GridLayout layout = new GridLayout( 1, false );
+ layout.marginWidth = 0;
+ layout.marginHeight = 0;
+ setLayout( layout );
+ setLayoutData( new GridData( SWT.FILL, SWT.FILL, true, true ) );
+
+ container = new Composite( this, SWT.NONE );
+ layout = new GridLayout( 2, false );
+ container.setLayout( layout );
+ container.setLayoutData( new GridData( GridData.FILL, GridData.FILL, true, true ) );
+
+ createTreeViewer();
+ createButtons();
+ }
+
+
+ private void createTreeViewer()
+ {
+ tableViewer = new TableViewer( container, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER );
+ tableViewer.getTable().setLayoutData( new GridData( GridData.FILL, GridData.FILL, true, true ) );
+ tableViewer.setContentProvider( new KeyStoreContentProvider() );
+ tableViewer.setLabelProvider( new KeyStoreLabelProvider() );
+ tableViewer.addSelectionChangedListener( new ISelectionChangedListener()
+ {
+ public void selectionChanged( SelectionChangedEvent event )
+ {
+ viewButton.setEnabled( !event.getSelection().isEmpty() );
+ removeButton.setEnabled( !event.getSelection().isEmpty() );
+ }
+ } );
+ }
+
+
+ private void createButtons()
+ {
+ Composite buttonContainer = BaseWidgetUtils.createColumnContainer( container, 1, 1 );
+ buttonContainer.setLayoutData( new GridData( GridData.FILL, GridData.FILL, false, false ) );
+ viewButton = BaseWidgetUtils.createButton( buttonContainer, Messages
+ .getString( "CertificateListComposite.ViewButton" ), 1 );//$NON-NLS-1$
+ viewButton.setEnabled( false );
+ viewButton.addSelectionListener( new SelectionAdapter()
+ {
+ @Override
+ public void widgetSelected( SelectionEvent e )
+ {
+ IStructuredSelection selection = ( IStructuredSelection ) tableViewer.getSelection();
+ X509Certificate certificate = ( X509Certificate ) selection.getFirstElement();
+ new CertificateInfoDialog( getShell(), new X509Certificate[]
+ { certificate } ).open();
+ }
+ } );
+
+ addButton = BaseWidgetUtils.createButton( buttonContainer, Messages
+ .getString( "CertificateListComposite.AddButton" ), 1 ); //$NON-NLS-1$
+ addButton.setEnabled( false );
+ // TODO: implement add action
+
+ removeButton = BaseWidgetUtils.createButton( buttonContainer, Messages
+ .getString( "CertificateListComposite.RemoveButton" ), 1 ); //$NON-NLS-1$
+ removeButton.setEnabled( false );
+ removeButton.addSelectionListener( new SelectionAdapter()
+ {
+ @Override
+ public void widgetSelected( SelectionEvent e )
+ {
+ IStructuredSelection selection = ( IStructuredSelection ) tableViewer.getSelection();
+ Iterator<X509Certificate> iterator = selection.iterator();
+ while ( iterator.hasNext() )
+ {
+ X509Certificate certificate = iterator.next();
+ try
+ {
+ keyStoreManager.removeCertificate( certificate );
+ }
+ catch ( CertificateException ce )
+ {
+ throw new RuntimeException( ce );
+ }
+ }
+ tableViewer.refresh();
+ }
+ } );
+ }
+
+
+ /**
+ * Sets the input for this composite.
+ *
+ * @param keyStoreManager the key store manager
+ */
+ public void setInput( StudioKeyStoreManager keyStoreManager )
+ {
+ this.keyStoreManager = keyStoreManager;
+ tableViewer.setInput( keyStoreManager );
+ }
+
+ class KeyStoreContentProvider implements IStructuredContentProvider
+ {
+
+ /**
+ * {@inheritDoc}
+ */
+ public Object[] getElements( Object inputElement )
+ {
+ if ( inputElement instanceof StudioKeyStoreManager )
+ {
+ StudioKeyStoreManager keyStoreManager = ( StudioKeyStoreManager ) inputElement;
+ try
+ {
+ return keyStoreManager.getCertificates();
+ }
+ catch ( CertificateException e )
+ {
+ throw new RuntimeException( e );
+ }
+ }
+ return null;
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void dispose()
+ {
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public void inputChanged( Viewer viewer, Object oldInput, Object newInput )
+ {
+ }
+
+ }
+
+ class KeyStoreLabelProvider extends LabelProvider
+ {
+ @Override
+ public String getText( Object element )
+ {
+ if ( element instanceof X509Certificate )
+ {
+ X509Certificate certificate = ( X509Certificate ) element;
+ return certificate.getSubjectX500Principal().getName();
+ }
+ return super.getText( element );
+ }
+ }
+}
Propchange: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateListComposite.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages.properties?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages.properties (original)
+++ directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages.properties Wed May 27 16:51:29 2009
@@ -70,6 +70,10 @@
CertificateInfoComposite.ValidityLabel = Validity
CertificateInfoComposite.Version = Version
+CertificateListComposite.AddButton = Add...
+CertificateListComposite.RemoveButton = Remove
+CertificateListComposite.ViewButton = View...
+
NetworkParameterPage.CheckNetworkParameter = Check Network Parameter
NetworkParameterPage.ConnectionEstablished = The connection was established successfully.
NetworkParameterPage.ConnectionExists = A connection named "{0}" already exists.
Modified: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_de.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_de.properties?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_de.properties (original)
+++ directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_de.properties Wed May 27 16:51:29 2009
@@ -69,6 +69,10 @@
CertificateInfoComposite.ValidityLabel = G\u00FCltigkeit
CertificateInfoComposite.Version = Version
+CertificateListComposite.AddButton = Hinzuf\u00FCgen...
+CertificateListComposite.RemoveButton = Entfernen
+CertificateListComposite.ViewButton = Anzeigen...
+
NetworkParameterPage.CheckNetworkParameter = Netzwerkparameter \u00FCberpr\u00FCfen
NetworkParameterPage.ConnectionEstablished = Die Verbindung wurde erfolgreich aufgebaut.
NetworkParameterPage.ConnectionExists = Eine Verbindung mit dem Namen "{0}" existiert bereits.
Modified: directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_fr.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_fr.properties?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_fr.properties (original)
+++ directory/studio/trunk/connection-ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_fr.properties Wed May 27 16:51:29 2009
@@ -1,4 +1,4 @@
-#Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
+#Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
@@ -68,6 +68,10 @@
CertificateInfoComposite.ValidityLabel = Validit\u00E9
CertificateInfoComposite.Version = Version
+CertificateListComposite.AddButton = Ajouter...
+CertificateListComposite.RemoveButton = Supprimer
+CertificateListComposite.ViewButton = Afficher...
+
NetworkParameterPage.CheckNetworkParameter = V\u00E9rifier les param\u00E8tres r\u00E9seau
NetworkParameterPage.ConnectionEstablished = La connexion a \u00E9t\u00E9 \u00E9tablie avec succ\u00E8s
NetworkParameterPage.ConnectionExists = Le nom "{0}" correspond \u00E0 une connexion existante.
Modified: directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/MainPreferencePage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/MainPreferencePage.java?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/MainPreferencePage.java (original)
+++ directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/MainPreferencePage.java Wed May 27 16:51:29 2009
@@ -21,18 +21,11 @@
package org.apache.directory.studio.ldapbrowser.common.dialogs.preferences;
-import org.apache.directory.studio.connection.core.ConnectionCoreConstants;
-import org.apache.directory.studio.connection.core.ConnectionCorePlugin;
import org.apache.directory.studio.connection.ui.widgets.BaseWidgetUtils;
import org.apache.directory.studio.ldapbrowser.common.BrowserCommonActivator;
-import org.eclipse.core.runtime.Preferences;
import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
@@ -46,11 +39,6 @@
public class MainPreferencePage extends PreferencePage implements IWorkbenchPreferencePage
{
- private Text jndiLdapContextProvider;
-
- private Button verifyCertificatesButton;
-
-
/**
*
* Creates a new instance of MainPreferencePage.
@@ -81,25 +69,6 @@
BaseWidgetUtils.createSpacer( composite, 1 );
BaseWidgetUtils.createSpacer( composite, 1 );
- Group group = BaseWidgetUtils.createGroup( BaseWidgetUtils.createColumnContainer( composite, 1, 1 ), Messages
- .getString( "MainPreferencePage.ContextProvider" ), 1 ); //$NON-NLS-1$
-
- Preferences preferences = ConnectionCorePlugin.getDefault().getPluginPreferences();
- String ldapCtxFactory = preferences.getString( ConnectionCoreConstants.PREFERENCE_LDAP_CONTEXT_FACTORY );
- String defaultLdapCtxFactory = preferences
- .getDefaultString( ConnectionCoreConstants.PREFERENCE_LDAP_CONTEXT_FACTORY );
- String note = NLS.bind(
- Messages.getString( "MainPreferencePage.SystemDetectedContextFactory" ), defaultLdapCtxFactory ); //$NON-NLS-1$
-
- jndiLdapContextProvider = BaseWidgetUtils.createText( group, ldapCtxFactory, 1 );
- BaseWidgetUtils.createWrappedLabel( group, note, 1 );
-
- boolean validateCertificates = preferences
- .getBoolean( ConnectionCoreConstants.PREFERENCE_VALIDATE_CERTIFICATES );
- verifyCertificatesButton = BaseWidgetUtils.createCheckbox( composite, Messages
- .getString( "MainPreferencePage.ValidateCertificates" ), 1 ); //$NON-NLS-1$
- verifyCertificatesButton.setSelection( validateCertificates );
-
return composite;
}
@@ -109,10 +78,6 @@
*/
protected void performDefaults()
{
- jndiLdapContextProvider.setText( ConnectionCorePlugin.getDefault().getPluginPreferences().getDefaultString(
- ConnectionCoreConstants.PREFERENCE_LDAP_CONTEXT_FACTORY ) );
- verifyCertificatesButton.setSelection( ConnectionCorePlugin.getDefault().getPluginPreferences()
- .getDefaultBoolean( ConnectionCoreConstants.PREFERENCE_VALIDATE_CERTIFICATES ) );
super.performDefaults();
}
@@ -122,10 +87,6 @@
*/
public boolean performOk()
{
- ConnectionCorePlugin.getDefault().getPluginPreferences().setValue(
- ConnectionCoreConstants.PREFERENCE_LDAP_CONTEXT_FACTORY, jndiLdapContextProvider.getText() );
- ConnectionCorePlugin.getDefault().getPluginPreferences().setValue(
- ConnectionCoreConstants.PREFERENCE_VALIDATE_CERTIFICATES, verifyCertificatesButton.getSelection() );
return true;
}
Modified: directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/messages.properties?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/messages.properties (original)
+++ directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/messages.properties Wed May 27 16:51:29 2009
@@ -77,11 +77,8 @@
EntryEditorPreferencePage.ShowObjectClassAttributes=Show objectClass attribute
EntryEditorPreferencePage.ShowOperationalAttributes=Show operational attributes
EntryEditorPreferencePage.VisibleAttributes=Visible Attributes
-MainPreferencePage.ContextProvider=JNDI LDAP context provider
MainPreferencePage.GeneralSettings=General settings for the LDAP browser:
MainPreferencePage.LDAP=LDAP
-MainPreferencePage.SystemDetectedContextFactory=Note: The system detected ''{0}''.
-MainPreferencePage.ValidateCertificates=Validate certificates for secure LDAP connections
SyntaxDialog.SelectSyntaxOID=Select Syntax OID
SyntaxDialog.SyntaxOID=Syntax OID:
SyntaxValueEditorDialog.AttributeValueEditor=Attribute Value Editor
Modified: directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/messages_de.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/messages_de.properties?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/messages_de.properties (original)
+++ directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/messages_de.properties Wed May 27 16:51:29 2009
@@ -77,11 +77,8 @@
EntryEditorPreferencePage.ShowObjectClassAttributes=Objektklassen anzeigen
EntryEditorPreferencePage.ShowOperationalAttributes=Operationale Attribute anzeigen
EntryEditorPreferencePage.VisibleAttributes=Sichtbare Attribute
-MainPreferencePage.ContextProvider=JNDI LDAP Context Provider
MainPreferencePage.GeneralSettings=Allgemeine Einstellungen f\u00FCr den LDAP Browser:
MainPreferencePage.LDAP=LDAP
-MainPreferencePage.SystemDetectedContextFactory=Hinweis: Das System hat ''{0}'' ermittelt.
-MainPreferencePage.ValidateCertificates=Zertifikate für sichere LDAP Verbindungen validieren
SyntaxDialog.SelectSyntaxOID=Syntax OID ausw\u00E4hlen
SyntaxDialog.SyntaxOID=Syntax OID:
SyntaxValueEditorDialog.AttributeValueEditor=Attribut Wert Editor
Modified: directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/messages_fr.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/messages_fr.properties?rev=779237&r1=779236&r2=779237&view=diff
==============================================================================
--- directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/messages_fr.properties (original)
+++ directory/studio/trunk/ldapbrowser-common/src/main/java/org/apache/directory/studio/ldapbrowser/common/dialogs/preferences/messages_fr.properties Wed May 27 16:51:29 2009
@@ -77,11 +77,8 @@
EntryEditorPreferencePage.ShowObjectClassAttributes=Afficher l'attribut objectClass
EntryEditorPreferencePage.ShowOperationalAttributes=Afficher les attributs op\u00E9rationnels
EntryEditorPreferencePage.VisibleAttributes=Attributs visibles
-MainPreferencePage.ContextProvider=Fournisseur de contexte JNDI LDAP
MainPreferencePage.GeneralSettings=R\u00E9glages g\u00E9n\u00E9raux pour le navigateur LDAP:
MainPreferencePage.LDAP=LDAP
-MainPreferencePage.SystemDetectedContextFactory=Note: Le syst\u00E8me a d\u00E9tect\u00E9 ''{0}''.
-MainPreferencePage.ValidateCertificates=Valider les certificats des connexions LDAP s\u00E9curis\u00E9es
SyntaxDialog.SelectSyntaxOID=S\u00E9lectionner l'OID de la syntaxe
SyntaxDialog.SyntaxOID=OID de la syntaxe:
SyntaxValueEditorDialog.AttributeValueEditor=Attribut d'\u00E9diteur de valeur