Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/apache/directory-studio.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/NetworkParameterPage.java')
-rw-r--r--plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/NetworkParameterPage.java35
1 files changed, 32 insertions, 3 deletions
diff --git a/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/NetworkParameterPage.java b/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/NetworkParameterPage.java
index 5bcd3d7af..fa17ef514 100644
--- a/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/NetworkParameterPage.java
+++ b/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/NetworkParameterPage.java
@@ -21,6 +21,7 @@
package org.apache.directory.studio.connection.ui.widgets;
+import java.security.cert.X509Certificate;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -41,6 +42,7 @@ import org.apache.directory.studio.connection.ui.AbstractConnectionParameterPage
import org.apache.directory.studio.connection.ui.ConnectionUIConstants;
import org.apache.directory.studio.connection.ui.ConnectionUIPlugin;
import org.apache.directory.studio.connection.ui.RunnableContextRunner;
+import org.apache.directory.studio.connection.ui.dialogs.CertificateInfoDialog;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.dialogs.MessageDialog;
@@ -116,6 +118,9 @@ public class NetworkParameterPage extends AbstractConnectionParameterPage
/** The combo to select the encryption method */
private Combo encryptionMethodCombo;
+ /** The button to fetch and show the server's certificate */
+ private Button viewServerCertificateButton;
+
/** The button to check the connection parameters */
private Button checkConnectionButton;
@@ -316,11 +321,14 @@ public class NetworkParameterPage extends AbstractConnectionParameterPage
.getString( "NetworkParameterPage.WarningCertificateValidation" ), 2 ); //$NON-NLS-1$
}
- BaseWidgetUtils.createSpacer( groupComposite, 2 );
- checkConnectionButton = new Button( groupComposite, SWT.PUSH );
+ BaseWidgetUtils.createSpacer( groupComposite, 1 );
GridData gridData = new GridData();
gridData.horizontalAlignment = SWT.RIGHT;
gridData.verticalAlignment = SWT.BOTTOM;
+ viewServerCertificateButton = new Button( groupComposite, SWT.PUSH );
+ viewServerCertificateButton.setLayoutData( gridData );
+ viewServerCertificateButton.setText( Messages.getString( "NetworkParameterPage.ViewCertificate" ) ); //$NON-NLS-1$
+ checkConnectionButton = new Button( groupComposite, SWT.PUSH );
checkConnectionButton.setLayoutData( gridData );
checkConnectionButton.setText( Messages.getString( "NetworkParameterPage.CheckNetworkParameter" ) ); //$NON-NLS-1$
@@ -340,7 +348,11 @@ public class NetworkParameterPage extends AbstractConnectionParameterPage
{
// set enabled/disabled state of check connection button
checkConnectionButton.setEnabled( !hostCombo.getText().equals( StringUtils.EMPTY ) &&
- !portCombo.getText().equals( StringUtils.EMPTY ) ); //$NON-NLS-1$ //$NON-NLS-2$
+ !portCombo.getText().equals( StringUtils.EMPTY ) );
+
+ // set enabled/disabled state of show server certificate button
+ viewServerCertificateButton.setEnabled( checkConnectionButton.isEnabled()
+ && getEncyrptionMethod() != EncryptionMethod.NONE );
// validate input fields
message = null;
@@ -459,6 +471,23 @@ public class NetworkParameterPage extends AbstractConnectionParameterPage
}
} );
+ viewServerCertificateButton.addSelectionListener( new SelectionAdapter()
+ {
+ @Override
+ public void widgetSelected( SelectionEvent event )
+ {
+ Connection connection = getTestConnection();
+ CheckNetworkParameterRunnable runnable = new CheckNetworkParameterRunnable( connection );
+ IStatus status = RunnableContextRunner.execute( runnable, runnableContext, true );
+
+ if ( status.isOK() )
+ {
+ X509Certificate[] serverCertificates = runnable.getServerCertificates();
+ new CertificateInfoDialog( Display.getDefault().getActiveShell(), serverCertificates ).open();
+ }
+ }
+ } );
+
readOnlyConnectionCheckbox.addSelectionListener( new SelectionAdapter()
{
/**