You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pa...@apache.org on 2011/12/21 16:29:12 UTC
svn commit: r1221768 - in /directory/studio/trunk/plugins/connection.ui: ./
src/main/java/org/apache/directory/studio/connection/ui/widgets/
Author: pamarcelot
Date: Wed Dec 21 15:29:12 2011
New Revision: 1221768
URL: http://svn.apache.org/viewvc?rev=1221768&view=rev
Log:
Fix for DIRSTUDIO-755 (Implement the 'Add...' button in the 'Certificate Validation' preference page).
Modified:
directory/studio/trunk/plugins/connection.ui/pom.xml
directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateListComposite.java
directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages.properties
directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_de.properties
directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_fr.properties
Modified: directory/studio/trunk/plugins/connection.ui/pom.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/connection.ui/pom.xml?rev=1221768&r1=1221767&r2=1221768&view=diff
==============================================================================
--- directory/studio/trunk/plugins/connection.ui/pom.xml (original)
+++ directory/studio/trunk/plugins/connection.ui/pom.xml Wed Dec 21 15:29:12 2011
@@ -113,6 +113,7 @@
<Eclipse-LazyStart>true</Eclipse-LazyStart>
<Bundle-Activator>org.apache.directory.studio.connection.ui.ConnectionUIPlugin</Bundle-Activator>
<Require-Bundle>org.apache.commons.codec;bundle-version="${org.apache.commons.codec.version}",
+ org.apache.commons.io;bundle-version="${org.apache.commons.io.version}",
org.apache.commons.lang;bundle-version="${org.apache.commons.lang.version}",
org.apache.directory.shared.ldap.model;bundle-version="${org.apache.directory.shared.validversion}",
org.apache.directory.studio.common.core,
@@ -158,12 +159,17 @@
</dependency>
<dependency>
<groupId>org.apache.directory.studio</groupId>
- <artifactId>org.apache.commons.lang</artifactId>
+ <artifactId>org.apache.commons.codec</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.directory.studio</groupId>
- <artifactId>org.apache.commons.codec</artifactId>
+ <artifactId>org.apache.commons.io</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.directory.studio</groupId>
+ <artifactId>org.apache.commons.lang</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
Modified: directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateListComposite.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateListComposite.java?rev=1221768&r1=1221767&r2=1221768&view=diff
==============================================================================
--- directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateListComposite.java (original)
+++ directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/CertificateListComposite.java Wed Dec 21 15:29:12 2011
@@ -20,15 +20,21 @@
package org.apache.directory.studio.connection.ui.widgets;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.security.cert.Certificate;
import java.security.cert.CertificateException;
+import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.util.Iterator;
+import org.apache.commons.io.FileUtils;
import org.apache.directory.studio.common.ui.widgets.BaseWidgetUtils;
import org.apache.directory.studio.connection.core.StudioKeyStoreManager;
import org.apache.directory.studio.connection.ui.ConnectionUIConstants;
import org.apache.directory.studio.connection.ui.ConnectionUIPlugin;
import org.apache.directory.studio.connection.ui.dialogs.CertificateInfoDialog;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.ISelectionChangedListener;
@@ -36,8 +42,10 @@ import org.eclipse.jface.viewers.IStruct
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
@@ -46,6 +54,7 @@ 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.FileDialog;
/**
@@ -56,7 +65,6 @@ import org.eclipse.swt.widgets.Composite
*/
public class CertificateListComposite extends Composite
{
-
private StudioKeyStoreManager keyStoreManager;
private Composite container;
private TableViewer tableViewer;
@@ -129,7 +137,6 @@ public class CertificateListComposite ex
viewButton.setEnabled( false );
viewButton.addSelectionListener( new SelectionAdapter()
{
- @Override
public void widgetSelected( SelectionEvent e )
{
IStructuredSelection selection = ( IStructuredSelection ) tableViewer.getSelection();
@@ -141,22 +148,53 @@ public class CertificateListComposite ex
addButton = BaseWidgetUtils.createButton( buttonContainer, Messages
.getString( "CertificateListComposite.AddButton" ), 1 ); //$NON-NLS-1$
- addButton.setEnabled( false );
- // TODO: implement add action
+ addButton.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent e )
+ {
+ // Asking the user for the certificate file
+ FileDialog dialog = new FileDialog( getShell(), SWT.OPEN );
+ dialog.setText( Messages.getString( "CertificateListComposite.LoadCertificate" ) ); //$NON-NLS-1$
+ String returnedFileName = dialog.open();
+
+ if ( returnedFileName != null )
+ {
+ try
+ {
+ // Reading the certificate
+ X509Certificate certificate = generateCertificate( FileUtils.readFileToByteArray( new File(
+ returnedFileName ) ) );
+
+ // Adding the certificate
+ keyStoreManager.addCertificate( certificate );
+
+ // Refreshing the table viewer
+ tableViewer.refresh();
+ tableViewer.setSelection( new StructuredSelection( certificate ) );
+ }
+ catch ( Exception ex )
+ {
+ MessageDialog.openError( addButton.getShell(),
+ Messages.getString( "CertificateListComposite.ErrorDialogTitle" ), //$NON-NLS-1$
+ NLS.bind( Messages.getString( "CertificateListComposite.ErrorDialogMessage" ),
+ ex.getMessage() ) );
+ }
+ }
+ };
+ } );
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();
+ Iterator<?> iterator = selection.iterator();
while ( iterator.hasNext() )
{
- X509Certificate certificate = iterator.next();
+ X509Certificate certificate = ( X509Certificate ) iterator.next();
try
{
keyStoreManager.removeCertificate( certificate );
@@ -172,6 +210,19 @@ public class CertificateListComposite ex
}
+ private static X509Certificate generateCertificate( byte[] data ) throws CertificateException
+ {
+ CertificateFactory cf = CertificateFactory.getInstance( "X.509" ); //$NON-NLS-1$
+ Certificate certificate = cf.generateCertificate( new ByteArrayInputStream( data ) );
+ if ( certificate instanceof X509Certificate )
+ {
+ return ( X509Certificate ) certificate;
+ }
+
+ return null;
+ }
+
+
/**
* Sets the input for this composite.
*
@@ -203,6 +254,7 @@ public class CertificateListComposite ex
throw new RuntimeException( e );
}
}
+
return null;
}
@@ -226,7 +278,6 @@ public class CertificateListComposite ex
class KeyStoreLabelProvider extends LabelProvider
{
- @Override
public String getText( Object element )
{
if ( element instanceof X509Certificate )
@@ -243,11 +294,11 @@ public class CertificateListComposite ex
return Messages.getString( "CertificateListComposite.UntitledCertificate" ); //$NON-NLS-1$
}
}
+
return super.getText( element );
}
- @Override
public Image getImage( Object element )
{
if ( element instanceof X509Certificate )
@@ -255,7 +306,6 @@ public class CertificateListComposite ex
return ConnectionUIPlugin.getDefault().getImage( ConnectionUIConstants.IMG_CERTIFICATE );
}
- // TODO Auto-generated method stub
return super.getImage( element );
}
}
Modified: directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages.properties?rev=1221768&r1=1221767&r2=1221768&view=diff
==============================================================================
--- directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages.properties (original)
+++ directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages.properties Wed Dec 21 15:29:12 2011
@@ -104,6 +104,9 @@ CertificateListComposite.AddButton
CertificateListComposite.RemoveButton = Remove
CertificateListComposite.ViewButton = View...
CertificateListComposite.UntitledCertificate = <Untitled>
+CertificateListComposite.LoadCertificate = Load Certificate
+CertificateListComposite.ErrorDialogTitle = Error
+CertificateListComposite.ErrorDialogMessage = An error occurred while adding the certificate: {0}
NetworkParameterPage.CheckNetworkParameter = Check Network Parameter
NetworkParameterPage.ConnectionEstablished = The connection was established successfully.
Modified: directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_de.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_de.properties?rev=1221768&r1=1221767&r2=1221768&view=diff
==============================================================================
--- directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_de.properties (original)
+++ directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_de.properties Wed Dec 21 15:29:12 2011
@@ -103,6 +103,9 @@ CertificateListComposite.AddButton
CertificateListComposite.RemoveButton = Entfernen
CertificateListComposite.ViewButton = Anzeigen...
CertificateListComposite.UntitledCertificate = <Unbetitelt>
+CertificateInfoComposite.LoadCertificate = Zertifikat laden
+CertificateInfoComposite.ErrorDialogTitle = Fehler
+CertificateInfoComposite.ErrorDialogMessage = TODO:An error occurred while adding the certificate: {0}
NetworkParameterPage.CheckNetworkParameter = Netzwerkparameter \u00FCberpr\u00FCfen
NetworkParameterPage.ConnectionEstablished = Die Verbindung wurde erfolgreich aufgebaut.
Modified: directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_fr.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_fr.properties?rev=1221768&r1=1221767&r2=1221768&view=diff
==============================================================================
--- directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_fr.properties (original)
+++ directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/messages_fr.properties Wed Dec 21 15:29:12 2011
@@ -102,6 +102,9 @@ CertificateListComposite.AddButton
CertificateListComposite.RemoveButton = Supprimer
CertificateListComposite.ViewButton = Afficher...
CertificateListComposite.UntitledCertificate = <Sans titre>
+CertificateListComposite.LoadCertificate = Charger un certificat
+CertificateListComposite.ErrorDialogTitle = Erreur
+CertificateListComposite.ErrorDialogMessage = Une erreur est survenue lors de l'ajout du certificat : {0}
NetworkParameterPage.CheckNetworkParameter = V\u00E9rifier les param\u00E8tres r\u00E9seau
NetworkParameterPage.ConnectionEstablished = La connexion a \u00E9t\u00E9 \u00E9tablie avec succ\u00E8s