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/14 15:59:26 UTC
svn commit: r1214281 - in /directory/studio/trunk/plugins:
connection.core/src/main/java/org/apache/directory/studio/connection/core/
connection.core/src/main/java/org/apache/directory/studio/connection/core/io/
connection.core/src/main/java/org/apache...
Author: pamarcelot
Date: Wed Dec 14 14:59:25 2011
New Revision: 1214281
URL: http://svn.apache.org/viewvc?rev=1214281&view=rev
Log:
Fix for DIRSTUDIO-413 (Add possibility to make connections read-only).
Modified:
directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/ConnectionIO.java
directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/api/DirectoryApiConnectionWrapper.java
directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/JNDIConnectionWrapper.java
directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/messages.properties
directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/NetworkParameterPage.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.core/src/main/java/org/apache/directory/studio/connection/core/io/ConnectionIO.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/ConnectionIO.java?rev=1214281&r1=1214280&r2=1214281&view=diff
==============================================================================
--- directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/ConnectionIO.java (original)
+++ directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/ConnectionIO.java Wed Dec 14 14:59:25 2011
@@ -77,6 +77,7 @@ public class ConnectionIO
private static final String KRB5_REALM_TAG = "krb5Realm"; //$NON-NLS-1$
private static final String KRB5_KDC_HOST_TAG = "krb5KdcHost"; //$NON-NLS-1$
private static final String KRB5_KDC_PORT_TAG = "krb5KdcPort"; //$NON-NLS-1$
+ private static final String READ_ONLY_TAG = "readOnly"; //$NON-NLS-1$
private static final String EXTENDED_PROPERTIES_TAG = "extendedProperties"; //$NON-NLS-1$
private static final String EXTENDED_PROPERTY_TAG = "extendedProperty"; //$NON-NLS-1$
@@ -265,7 +266,16 @@ public class ConnectionIO
}
else
{
- connection.setSaslQop( SaslQoP.valueOf( saslQopAttribute.getValue() ) );
+ try
+ {
+ connection.setSaslQop( SaslQoP.valueOf( saslQopAttribute.getValue() ) );
+ }
+ catch ( IllegalArgumentException e )
+ {
+ throw new ConnectionIOException( "Unable to parse 'SASL Quality of Protection' of connection '" //$NON-NLS-1$
+ + connection.getName() + "' as int value. SASL Quality of Protection value :" //$NON-NLS-1$
+ + saslQopAttribute.getValue() );
+ }
}
}
@@ -273,7 +283,16 @@ public class ConnectionIO
Attribute saslSecStrengthAttribute = element.attribute( SASL_SEC_STRENGTH_TAG );
if ( saslSecStrengthAttribute != null )
{
- connection.setSaslSecurityStrength( SaslSecurityStrength.valueOf( saslSecStrengthAttribute.getValue() ) );
+ try
+ {
+ connection.setSaslSecurityStrength( SaslSecurityStrength.valueOf( saslSecStrengthAttribute.getValue() ) );
+ }
+ catch ( IllegalArgumentException e )
+ {
+ throw new ConnectionIOException( "Unable to parse 'SASL Security Strength' of connection '" //$NON-NLS-1$
+ + connection.getName() + "' as int value. SASL Security Strength value :" //$NON-NLS-1$
+ + saslSecStrengthAttribute.getValue() );
+ }
}
// SASL Mutual Authentication
@@ -287,15 +306,33 @@ public class ConnectionIO
Attribute krb5CredentialsConf = element.attribute( KRB5_CREDENTIALS_CONF_TAG );
if ( krb5CredentialsConf != null )
{
- connection.setKrb5CredentialConfiguration( Krb5CredentialConfiguration.valueOf( krb5CredentialsConf
- .getValue() ) );
+ try
+ {
+ connection.setKrb5CredentialConfiguration( Krb5CredentialConfiguration.valueOf( krb5CredentialsConf
+ .getValue() ) );
+ }
+ catch ( IllegalArgumentException e )
+ {
+ throw new ConnectionIOException( "Unable to parse 'KRB5 Credentials Conf' of connection '" //$NON-NLS-1$
+ + connection.getName() + "' as int value. KRB5 Credentials Conf value :" //$NON-NLS-1$
+ + krb5CredentialsConf.getValue() );
+ }
}
// KRB5 Configuration
Attribute krb5Config = element.attribute( KRB5_CONFIG_TAG );
if ( krb5Config != null )
{
- connection.setKrb5Configuration( Krb5Configuration.valueOf( krb5Config.getValue() ) );
+ try
+ {
+ connection.setKrb5Configuration( Krb5Configuration.valueOf( krb5Config.getValue() ) );
+ }
+ catch ( IllegalArgumentException e )
+ {
+ throw new ConnectionIOException( "Unable to parse 'KRB5 Configuration' of connection '" //$NON-NLS-1$
+ + connection.getName() + "' as int value. KRB5 Configuration value :" //$NON-NLS-1$
+ + krb5Config.getValue() );
+ }
}
// KRB5 Configuration File
@@ -323,7 +360,22 @@ public class ConnectionIO
Attribute krb5KdcPort = element.attribute( KRB5_KDC_PORT_TAG );
if ( krb5KdcPort != null )
{
- connection.setKrb5KdcPort( Integer.valueOf( krb5KdcPort.getValue() ) );
+ try
+ {
+ connection.setKrb5KdcPort( Integer.valueOf( krb5KdcPort.getValue() ) );
+ }
+ catch ( NumberFormatException e )
+ {
+ throw new ConnectionIOException( "Unable to parse 'KRB5 KDC Port' of connection '" + connection.getName() //$NON-NLS-1$
+ + "' as int value. KRB5 KDC Port value :" + krb5KdcPort.getValue() ); //$NON-NLS-1$
+ }
+ }
+
+ // Read Only
+ Attribute readOnly = element.attribute( READ_ONLY_TAG );
+ if ( readOnly != null )
+ {
+ connection.setReadOnly( Boolean.parseBoolean( readOnly.getValue() ) );
}
// Extended Properties
@@ -453,6 +505,9 @@ public class ConnectionIO
// KRB5 KDC Port
connectionElement.addAttribute( KRB5_KDC_PORT_TAG, "" + connection.getKrb5KdcPort() ); //$NON-NLS-1$
+ // Read Only
+ connectionElement.addAttribute( READ_ONLY_TAG, "" + connection.isReadOnly() ); //$NON-NLS-1$
+
// Extended Properties
Element extendedPropertiesElement = connectionElement.addElement( EXTENDED_PROPERTIES_TAG );
Map<String, String> extendedProperties = connection.getExtendedProperties();
Modified: directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/api/DirectoryApiConnectionWrapper.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/api/DirectoryApiConnectionWrapper.java?rev=1214281&r1=1214280&r2=1214281&view=diff
==============================================================================
--- directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/api/DirectoryApiConnectionWrapper.java (original)
+++ directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/api/DirectoryApiConnectionWrapper.java Wed Dec 14 14:59:25 2011
@@ -675,7 +675,8 @@ public class DirectoryApiConnectionWrapp
{
if ( connection.isReadOnly() )
{
- monitor.reportError( NLS.bind( Messages.error__connection_is_readonly, connection.getName() ) );
+ monitor
+ .reportError( new Exception( NLS.bind( Messages.error__connection_is_readonly, connection.getName() ) ) );
return;
}
@@ -817,7 +818,8 @@ public class DirectoryApiConnectionWrapp
{
if ( connection.isReadOnly() )
{
- monitor.reportError( NLS.bind( Messages.error__connection_is_readonly, connection.getName() ) );
+ monitor
+ .reportError( new Exception( NLS.bind( Messages.error__connection_is_readonly, connection.getName() ) ) );
return;
}
@@ -888,7 +890,8 @@ public class DirectoryApiConnectionWrapp
{
if ( connection.isReadOnly() )
{
- monitor.reportError( NLS.bind( Messages.error__connection_is_readonly, connection.getName() ) );
+ monitor
+ .reportError( new Exception( NLS.bind( Messages.error__connection_is_readonly, connection.getName() ) ) );
return;
}
@@ -956,7 +959,8 @@ public class DirectoryApiConnectionWrapp
{
if ( connection.isReadOnly() )
{
- monitor.reportError( NLS.bind( Messages.error__connection_is_readonly, connection.getName() ) );
+ monitor
+ .reportError( new Exception( NLS.bind( Messages.error__connection_is_readonly, connection.getName() ) ) );
return;
}
Modified: directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/JNDIConnectionWrapper.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/JNDIConnectionWrapper.java?rev=1214281&r1=1214280&r2=1214281&view=diff
==============================================================================
--- directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/JNDIConnectionWrapper.java (original)
+++ directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/io/jndi/JNDIConnectionWrapper.java Wed Dec 14 14:59:25 2011
@@ -433,7 +433,8 @@ public class JNDIConnectionWrapper imple
{
if ( connection.isReadOnly() )
{
- monitor.reportError( NLS.bind( Messages.error__connection_is_readonly, connection.getName() ) );
+ monitor
+ .reportError( new Exception( NLS.bind( Messages.error__connection_is_readonly, connection.getName() ) ) );
return;
}
@@ -539,7 +540,8 @@ public class JNDIConnectionWrapper imple
{
if ( connection.isReadOnly() )
{
- monitor.reportError( NLS.bind( Messages.error__connection_is_readonly, connection.getName() ) );
+ monitor
+ .reportError( new Exception( NLS.bind( Messages.error__connection_is_readonly, connection.getName() ) ) );
return;
}
@@ -645,7 +647,8 @@ public class JNDIConnectionWrapper imple
{
if ( connection.isReadOnly() )
{
- monitor.reportError( NLS.bind( Messages.error__connection_is_readonly, connection.getName() ) );
+ monitor
+ .reportError( new Exception( NLS.bind( Messages.error__connection_is_readonly, connection.getName() ) ) );
return;
}
@@ -747,7 +750,8 @@ public class JNDIConnectionWrapper imple
{
if ( connection.isReadOnly() )
{
- monitor.reportError( NLS.bind( Messages.error__connection_is_readonly, connection.getName() ) );
+ monitor
+ .reportError( new Exception( NLS.bind( Messages.error__connection_is_readonly, connection.getName() ) ) );
return;
}
Modified: directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/messages.properties?rev=1214281&r1=1214280&r2=1214281&view=diff
==============================================================================
--- directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/messages.properties (original)
+++ directory/studio/trunk/plugins/connection.core/src/main/java/org/apache/directory/studio/connection/core/messages.properties Wed Dec 14 14:59:25 2011
@@ -24,7 +24,7 @@ error__unable_to_create_connection_liste
error__unable_to_create_jndi_logger=Unable to create JNDI logger.
error__unable_to_get_plugin_properties=Unable to get the plugin properties.
error__loop_detected=Loop detected while following referral: {0}
-error__connection_is_readonly=Connection '{0}' is read only.
+error__connection_is_readonly=Connection ''{0}'' is read only.
error__untrusted_certificate=Untrusted certificate.
model__no_auth_handler=No authentification handler
Modified: directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/NetworkParameterPage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/NetworkParameterPage.java?rev=1214281&r1=1214280&r2=1214281&view=diff
==============================================================================
--- directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/NetworkParameterPage.java (original)
+++ directory/studio/trunk/plugins/connection.ui/src/main/java/org/apache/directory/studio/connection/ui/widgets/NetworkParameterPage.java Wed Dec 14 14:59:25 2011
@@ -97,6 +97,9 @@ public class NetworkParameterPage extend
/** The button to check the connection parameters */
private Button checkConnectionButton;
+ /** The checkbox to make the connection read-only */
+ private Button readOnlyConnectionCheckbox;
+
/**
* Creates a new instance of NetworkParameterPage.
@@ -191,6 +194,17 @@ public class NetworkParameterPage extend
/**
+ * Gets read only flag.
+ *
+ * @return the read only flag
+ */
+ private boolean isReadOnly()
+ {
+ return readOnlyConnectionCheckbox.getSelection();
+ }
+
+
+ /**
* {@inheritDoc}
*/
protected void createComposite( Composite parent )
@@ -247,6 +261,9 @@ public class NetworkParameterPage extend
checkConnectionButton.setLayoutData( gd );
checkConnectionButton.setText( Messages.getString( "NetworkParameterPage.CheckNetworkParameter" ) ); //$NON-NLS-1$
+ readOnlyConnectionCheckbox = BaseWidgetUtils.createCheckbox( composite,
+ Messages.getString( "NetworkParameterPage.ReadOnly" ), 1 ); //$NON-NLS-1$
+
nameText.setFocus();
}
@@ -299,6 +316,7 @@ public class NetworkParameterPage extend
encryptionMethodCombo.select( encryptionMethodIndex );
int networkProviderIndex = parameter.getNetworkProvider() == NetworkProvider.JNDI ? 0 : 1;
networkProviderCombo.select( networkProviderIndex );
+ readOnlyConnectionCheckbox.setSelection( parameter.isReadOnly() );
}
@@ -372,6 +390,14 @@ public class NetworkParameterPage extend
}
}
} );
+
+ readOnlyConnectionCheckbox.addSelectionListener( new SelectionAdapter()
+ {
+ public void widgetSelected( SelectionEvent event )
+ {
+ connectionPageModified();
+ }
+ } );
}
@@ -385,6 +411,7 @@ public class NetworkParameterPage extend
parameter.setPort( getPort() );
parameter.setEncryptionMethod( getEncyrptionMethod() );
parameter.setNetworkProvider( getNetworkProvider() );
+ parameter.setReadOnly( isReadOnly() );
}
@@ -421,10 +448,12 @@ public class NetworkParameterPage extend
*/
public boolean isReconnectionRequired()
{
- return connectionParameter == null || !StringUtils.equals( connectionParameter.getHost(), getHostName() )
- || connectionParameter.getPort() != getPort()
- || connectionParameter.getEncryptionMethod() != getEncyrptionMethod()
- || connectionParameter.getNetworkProvider() != getNetworkProvider();
+ return ( connectionParameter == null )
+ || ( !StringUtils.equals( connectionParameter.getHost(), getHostName() ) )
+ || ( connectionParameter.getPort() != getPort() )
+ || ( connectionParameter.getEncryptionMethod() != getEncyrptionMethod() )
+ || ( connectionParameter.getNetworkProvider() != getNetworkProvider() )
+ || ( connectionParameter.isReadOnly() != isReadOnly() );
}
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=1214281&r1=1214280&r2=1214281&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 14 14:59:25 2011
@@ -117,6 +117,7 @@ NetworkParameterPage.PleaseEnterConnecti
NetworkParameterPage.PleaseEnterHostname = Please enter a hostname.
NetworkParameterPage.PleaseEnterPort = Please enter a port. The default LDAP port is 389.
NetworkParameterPage.Port = Port:
+NetworkParameterPage.ReadOnly = Read-Only (prevents any add, delete, modify or rename operation)
NetworkParameterPage.UseSSLEncryption = Use SSL encryption (ldaps://)
NetworkParameterPage.UseStartTLS = Use StartTLS extension
NetworkParameterPage.WarningCertificateValidation = Warning:\nCertificate validation is disabled, \nbe aware of invalid certificates or man-in-the-middle attacks!
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=1214281&r1=1214280&r2=1214281&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 14 14:59:25 2011
@@ -114,6 +114,7 @@ NetworkParameterPage.NoEncryption
NetworkParameterPage.PleaseEnterConnectionName = Geben Sie bitte einen Verbindungsnamen ein.
NetworkParameterPage.PleaseEnterHostname = Geben Sie bitte einen Hostnamen ein.
NetworkParameterPage.PleaseEnterPort = Geben Sie bitte einen Port ein. LDAP Standard ist Port 389.
+NetworkParameterPage.ReadOnly = TODO:Read-Only (prevents any add, delete, modify or rename operation)
NetworkParameterPage.UseSSLEncryption = SSL Verschl\u00FCsselung (ldaps://)
NetworkParameterPage.UseStartTLS = StartTLS Erweiterung
NetworkParameterPage.WarningCertificateValidation = Warnung:\nZertifikat Validierung ist deaktiviert,\nsind Sie sich der Gefahr von ung\u00FCltigen Zertifikaten\noder 'man-in-the-middle' Angriffen bewusst!
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=1214281&r1=1214280&r2=1214281&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 14 14:59:25 2011
@@ -114,6 +114,7 @@ NetworkParameterPage.NoEncryption
NetworkParameterPage.PleaseEnterConnectionName = Veuillez entrer un nom de connexion.
NetworkParameterPage.PleaseEnterHostname = Veuillez entrer un nom d'h\u00F4te.
NetworkParameterPage.PleaseEnterPort = Veuillez entrer un port. Le port par d\u00E9fault pour LDAP est 389.
+NetworkParameterPage.ReadOnly = Lecture seule (emp\u00E8che toute op\u00E9ration d'ajout, suppression, modification ou renommage)
NetworkParameterPage.UseSSLEncryption = Utilise l'encryption SSL (ldaps://)
NetworkParameterPage.UseStartTLS = Utilise l'extension StartTLS
NetworkParameterPage.WarningCertificateValidation = Attention :\n La validation des certificats est d\u00E9sactiv\u00E9e, \nm\u00E9fiez-vous des certificats invalides ou des attaques par interposition (man-in-the-middle)!