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 2013/02/14 12:02:08 UTC

svn commit: r1446115 - in /directory/studio/trunk: ./ application/application-plugins/ plugins/apacheds.configuration.v2/ plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ repository/

Author: pamarcelot
Date: Thu Feb 14 11:02:07 2013
New Revision: 1446115

URL: http://svn.apache.org/r1446115
Log:
Fix for:
- DIRSTUDIO-872 (The list of possible Kerberos encryption type should be available)
- DIRSTUDIO-873 (Kerberos encryption types are not saved correctly)

Modified:
    directory/studio/trunk/application/application-plugins/pom.xml
    directory/studio/trunk/plugins/apacheds.configuration.v2/pom.xml
    directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/KerberosServerPage.java
    directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/messages.properties
    directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/messages_de.properties
    directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/messages_fr.properties
    directory/studio/trunk/pom.xml
    directory/studio/trunk/repository/pom.xml

Modified: directory/studio/trunk/application/application-plugins/pom.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/application/application-plugins/pom.xml?rev=1446115&r1=1446114&r2=1446115&view=diff
==============================================================================
--- directory/studio/trunk/application/application-plugins/pom.xml (original)
+++ directory/studio/trunk/application/application-plugins/pom.xml Thu Feb 14 11:02:07 2013
@@ -140,10 +140,6 @@
                 </artifactItem>
                 <artifactItem>
                   <groupId>org.apache.directory.server</groupId>
-                  <artifactId>apacheds-server-config</artifactId>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>org.apache.directory.server</groupId>
                   <artifactId>apacheds-core</artifactId>
                 </artifactItem>
                 <artifactItem>
@@ -164,10 +160,18 @@
                 </artifactItem>
                 <artifactItem>
                   <groupId>org.apache.directory.server</groupId>
+                  <artifactId>apacheds-kerberos-codec</artifactId>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>org.apache.directory.server</groupId>
                   <artifactId>apacheds-ldif-partition</artifactId>
                 </artifactItem>
                 <artifactItem>
                   <groupId>org.apache.directory.server</groupId>
+                  <artifactId>apacheds-server-config</artifactId>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>org.apache.directory.server</groupId>
                   <artifactId>apacheds-xdbm-partition</artifactId>
                 </artifactItem>
                 <artifactItem>

Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/pom.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds.configuration.v2/pom.xml?rev=1446115&r1=1446114&r2=1446115&view=diff
==============================================================================
--- directory/studio/trunk/plugins/apacheds.configuration.v2/pom.xml (original)
+++ directory/studio/trunk/plugins/apacheds.configuration.v2/pom.xml Thu Feb 14 11:02:07 2013
@@ -113,6 +113,7 @@
             <Require-Bundle>org.apache.commons.io;bundle-version="${org.apache.commons.io.version}",
  org.apache.directory.server.core.api;bundle-version="${org.apache.directory.server.validversion}",
  org.apache.directory.server.config;bundle-version="${org.apache.directory.server.validversion}",
+ org.apache.directory.server.kerberos.codec;bundle-version="${org.apache.directory.server.validversion}",
  org.apache.directory.server.ldif.partition;bundle-version="${org.apache.directory.server.validversion}",
  org.apache.directory.server.xdbm.partition;bundle-version="${org.apache.directory.server.validversion}",
  org.apache.directory.api.ldap.model;bundle-version="${org.apache.directory.api.validversion}",
@@ -219,7 +220,7 @@
     </dependency>
     <dependency>
       <groupId>org.apache.directory.server</groupId>
-      <artifactId>apacheds-server-config</artifactId>
+      <artifactId>apacheds-kerberos-codec</artifactId>
       <scope>provided</scope>
     </dependency>
     <dependency>
@@ -229,6 +230,11 @@
     </dependency>
     <dependency>
       <groupId>org.apache.directory.server</groupId>
+      <artifactId>apacheds-server-config</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.directory.server</groupId>
       <artifactId>apacheds-xdbm-partition</artifactId>
       <scope>provided</scope>
     </dependency>

Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/KerberosServerPage.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/KerberosServerPage.java?rev=1446115&r1=1446114&r2=1446115&view=diff
==============================================================================
--- directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/KerberosServerPage.java (original)
+++ directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/KerberosServerPage.java Thu Feb 14 11:02:07 2013
@@ -20,6 +20,7 @@
 package org.apache.directory.studio.apacheds.configuration.v2.editor;
 
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.directory.api.ldap.model.exception.LdapInvalidDnException;
@@ -29,6 +30,13 @@ import org.apache.directory.server.confi
 import org.apache.directory.server.config.beans.InterceptorBean;
 import org.apache.directory.server.config.beans.KdcServerBean;
 import org.apache.directory.server.config.beans.TransportBean;
+import org.apache.directory.shared.kerberos.codec.types.EncryptionType;
+import org.apache.directory.studio.common.ui.CommonUIUtils;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.CheckStateChangedEvent;
+import org.eclipse.jface.viewers.CheckboxTableViewer;
+import org.eclipse.jface.viewers.ICheckStateListener;
+import org.eclipse.jface.viewers.LabelProvider;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.ModifyEvent;
 import org.eclipse.swt.events.ModifyListener;
@@ -39,6 +47,7 @@ import org.eclipse.swt.layout.GridLayout
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Table;
 import org.eclipse.swt.widgets.Text;
 import org.eclipse.ui.forms.widgets.FormToolkit;
 import org.eclipse.ui.forms.widgets.Section;
@@ -59,6 +68,16 @@ public class KerberosServerPage extends 
     /** The Page Title */
     private static final String TITLE = Messages.getString( "KerberosServerPage.KerberosServer" ); //$NON-NLS-1$
 
+    /** The encryption types supported by ApacheDS */
+    private static final EncryptionType[] SUPPORTED_ENCRYPTION_TYPES = new EncryptionType[]
+        {
+            EncryptionType.DES_CBC_MD5,
+            EncryptionType.DES3_CBC_SHA1_KD,
+            EncryptionType.AES128_CTS_HMAC_SHA1_96,
+            EncryptionType.AES256_CTS_HMAC_SHA1_96,
+            EncryptionType.RC4_HMAC
+    };
+
     // UI Controls
     private Button enableKerberosCheckbox;
     private Text kerberosPortText;
@@ -66,7 +85,7 @@ public class KerberosServerPage extends 
     private Text changePasswordPortText;
     private Text primaryKdcRealmText;
     private Text kdcSearchBaseDnText;
-    private Text encryptionTypesText;
+    private CheckboxTableViewer encryptionTypesTableViewer;
     private Button verifyBodyChecksumCheckbox;
     private Button allowEmptyAddressesCheckbox;
     private Button allowForwardableAddressesCheckbox;
@@ -134,12 +153,42 @@ public class KerberosServerPage extends 
             }
         }
     };
-    private ModifyListener encryptionTypesTextListener = new ModifyListener()
+    private ICheckStateListener encryptionTypesTableViewerListener = new ICheckStateListener()
     {
-        public void modifyText( ModifyEvent e )
+        public void checkStateChanged( CheckStateChangedEvent event )
         {
+            // Checking if the last encryption type is being unchecked
+            if ( ( getKdcServerBean().getKrbEncryptionTypes().size() == 1 ) && ( event.getChecked() == false ) )
+            {
+                // Displaying an error to the user
+                CommonUIUtils.openErrorDialog( Messages.getString( "KerberosServerPage.AtLeastOneEncryptionTypeMustBeSelected" ) ); //$NON-NLS-1$
+
+                // Reverting the current checked state
+                encryptionTypesTableViewer.setChecked( event.getElement(), !event.getChecked() );
+
+                // Exiting
+                return;
+            }
+
+            // Setting the editor as dirty
+            setEditorDirty();
+
+            // Clearing previous encryption types
             getKdcServerBean().getKrbEncryptionTypes().clear();
-            getKdcServerBean().addKrbEncryptionTypes( encryptionTypesText.getText() );
+
+            // Getting all selected encryption types
+            Object[] selectedEncryptionTypeObjects = encryptionTypesTableViewer.getCheckedElements();
+
+            // Adding each encryption type
+            for ( Object encryptionTypeObject : selectedEncryptionTypeObjects )
+            {
+                if ( encryptionTypeObject instanceof EncryptionType )
+                {
+                    EncryptionType encryptionType = ( EncryptionType ) encryptionTypeObject;
+
+                    getKdcServerBean().addKrbEncryptionTypes( encryptionType.getName() );
+                }
+            }
         }
     };
     private SelectionAdapter verifyBodyChecksumCheckboxListener = new SelectionAdapter()
@@ -332,12 +381,30 @@ public class KerberosServerPage extends 
         Label defaultSaslSearchBaseDnLabel = createDefaultValueLabel( toolkit, composite, "ou=users,dc=example,dc=com" ); //$NON-NLS-1$
         defaultSaslSearchBaseDnLabel.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, 2, 1 ) );
 
-        // Encryption Types Text
-        toolkit.createLabel( composite, Messages.getString( "KerberosServerPage.EncryptionTypes" ) ); //$NON-NLS-1$
-        encryptionTypesText = toolkit.createText( composite, "" ); //$NON-NLS-1$
-        setGridDataWithDefaultWidth( encryptionTypesText, new GridData( SWT.FILL, SWT.NONE, true, false ) );
-        Label defaultEncryptionTypesLabel = createDefaultValueLabel( toolkit, composite, "[des-cbc-md5]" ); //$NON-NLS-1$
-        defaultEncryptionTypesLabel.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false, 2, 1 ) );
+        // Encryption Types Table Viewer
+        Label encryptionTypesLabel = toolkit.createLabel( composite,
+            Messages.getString( "KerberosServerPage.EncryptionTypes" ) ); //$NON-NLS-1$
+        encryptionTypesLabel.setLayoutData( new GridData( SWT.BEGINNING, SWT.TOP, false, false ) );
+        encryptionTypesTableViewer = new CheckboxTableViewer( new Table( composite, SWT.BORDER | SWT.CHECK ) );
+        encryptionTypesTableViewer.setContentProvider( new ArrayContentProvider() );
+        encryptionTypesTableViewer.setLabelProvider( new LabelProvider()
+        {
+            public String getText( Object element )
+            {
+                if ( element instanceof EncryptionType )
+                {
+                    EncryptionType encryptionType = ( EncryptionType ) element;
+
+                    return encryptionType.getName().toUpperCase();
+                }
+
+                return super.getText( element );
+            }
+        } );
+        encryptionTypesTableViewer.setInput( SUPPORTED_ENCRYPTION_TYPES );
+        GridData encryptionTypesTableViewerGridData = new GridData( SWT.FILL, SWT.NONE, true, false );
+        encryptionTypesTableViewerGridData.heightHint = 60;
+        encryptionTypesTableViewer.getControl().setLayoutData( encryptionTypesTableViewerGridData );
     }
 
 
@@ -410,7 +477,6 @@ public class KerberosServerPage extends 
         toolkit.createLabel( composite, Messages.getString( "KerberosServerPage.AllowableClockSkew" ) ); //$NON-NLS-1$
         allowableClockSkewText = createIntegerText( toolkit, composite );
         setGridDataWithDefaultWidth( allowableClockSkewText, new GridData( SWT.FILL, SWT.NONE, true, false ) );
-
     }
 
 
@@ -436,7 +502,20 @@ public class KerberosServerPage extends 
         // Kerberos Settings
         setText( primaryKdcRealmText, kdcServerBean.getKrbPrimaryRealm() );
         setText( kdcSearchBaseDnText, kdcServerBean.getSearchBaseDn().toString() );
-        setText( encryptionTypesText, kdcServerBean.getKrbEncryptionTypes().toString() );
+
+        // Encryption Types
+        List<String> encryptionTypesNames = kdcServerBean.getKrbEncryptionTypes();
+        List<EncryptionType> encryptionTypes = new ArrayList<EncryptionType>();
+        for ( String encryptionTypesName : encryptionTypesNames )
+        {
+            EncryptionType encryptionType = EncryptionType.getByName( encryptionTypesName );
+
+            if ( !EncryptionType.UNKNOWN.equals( encryptionType ) )
+            {
+                encryptionTypes.add( encryptionType );
+            }
+        }
+        encryptionTypesTableViewer.setCheckedElements( encryptionTypes.toArray() );
 
         // Ticket Settings
         setSelection( verifyBodyChecksumCheckbox, kdcServerBean.isKrbBodyChecksumVerified() );
@@ -482,9 +561,8 @@ public class KerberosServerPage extends 
         addDirtyListener( kdcSearchBaseDnText );
         addModifyListener( kdcSearchBaseDnText, kdcSearchBaseDnTextListener );
 
-        // Encryption Types Text
-        addDirtyListener( encryptionTypesText );
-        addModifyListener( encryptionTypesText, encryptionTypesTextListener );
+        // Encryption Types Table Viewer
+        encryptionTypesTableViewer.addCheckStateListener( encryptionTypesTableViewerListener );
 
         // Verify Body Checksum Checkbox
         addDirtyListener( verifyBodyChecksumCheckbox );
@@ -554,9 +632,8 @@ public class KerberosServerPage extends 
         removeDirtyListener( kdcSearchBaseDnText );
         removeModifyListener( kdcSearchBaseDnText, kdcSearchBaseDnTextListener );
 
-        // Encryption Types Text
-        removeDirtyListener( encryptionTypesText );
-        removeModifyListener( encryptionTypesText, encryptionTypesTextListener );
+        // Encryption Types Table Viewer
+        encryptionTypesTableViewer.removeCheckStateListener( encryptionTypesTableViewerListener );
 
         // Verify Body Checksum Checkbox
         removeDirtyListener( verifyBodyChecksumCheckbox );

Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/messages.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/messages.properties?rev=1446115&r1=1446114&r2=1446115&view=diff
==============================================================================
--- directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/messages.properties (original)
+++ directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/messages.properties Thu Feb 14 11:02:07 2013
@@ -26,6 +26,7 @@ KerberosServerPage.AllowEmptyAddresses=A
 KerberosServerPage.AllowForwadableAddresses=Allow Forwardable Addresses
 KerberosServerPage.AllowPostdatedTickets=Allow Postdated Tickets
 KerberosServerPage.AllowRenewableTickets=Allow Renewable Tickets
+KerberosServerPage.AtLeastOneEncryptionTypeMustBeSelected=At least one encryption type must be selected.
 KerberosServerPage.EnableKerberosChangePassword=Enable Kerberos Change Password Server
 KerberosServerPage.EnableKerberosServer=Enable Kerberos Server
 KerberosServerPage.EncryptionTypes=Encryption Types:

Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/messages_de.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/messages_de.properties?rev=1446115&r1=1446114&r2=1446115&view=diff
==============================================================================
--- directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/messages_de.properties (original)
+++ directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/messages_de.properties Thu Feb 14 11:02:07 2013
@@ -26,6 +26,7 @@ KerberosServerPage.AllowEmptyAddresses=L
 KerberosServerPage.AllowForwadableAddresses=Weiterreichbare Adressen erlauben
 KerberosServerPage.AllowPostdatedTickets=Nachdatierte Tickets erlauben
 KerberosServerPage.AllowRenewableTickets=Erneuerbare Tickets erlauben
+KerberosServerPage.AtLeastOneEncryptionTypeMustBeSelected=TODO:At least one encryption type must be selected.
 KerberosServerPage.EnableKerberosChangePassword=Kerberos Change Password Server aktivieren
 KerberosServerPage.EnableKerberosServer=Kerberos Server aktivieren
 KerberosServerPage.EncryptionTypes=Verschl\u00FCsselungsverfahren:

Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/messages_fr.properties
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/messages_fr.properties?rev=1446115&r1=1446114&r2=1446115&view=diff
==============================================================================
--- directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/messages_fr.properties (original)
+++ directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/messages_fr.properties Thu Feb 14 11:02:07 2013
@@ -26,6 +26,7 @@ KerberosServerPage.AllowEmptyAddresses=A
 KerberosServerPage.AllowForwadableAddresses=Autoriser le renvoi d'adresses
 KerberosServerPage.AllowPostdatedTickets=Autoriser les tickets post-datés
 KerberosServerPage.AllowRenewableTickets=Autoriser les tickets renouvelables
+KerberosServerPage.AtLeastOneEncryptionTypeMustBeSelected=Au moins un type d'encryption doit être sélectionné.
 KerberosServerPage.EnableKerberosChangePassword=Activer le serveur Kerberos Change Password
 KerberosServerPage.EnableKerberosServer=Activer le serveur Kerberos
 KerberosServerPage.EncryptionTypes=Types d'encryption:

Modified: directory/studio/trunk/pom.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/pom.xml?rev=1446115&r1=1446114&r2=1446115&view=diff
==============================================================================
--- directory/studio/trunk/pom.xml (original)
+++ directory/studio/trunk/pom.xml Thu Feb 14 11:02:07 2013
@@ -1768,6 +1768,12 @@
 
       <dependency>
         <groupId>org.apache.directory.server</groupId>
+        <artifactId>apacheds-kerberos-codec</artifactId>
+        <version>${org.apache.directory.server.version}</version>
+      </dependency>
+
+      <dependency>
+        <groupId>org.apache.directory.server</groupId>
         <artifactId>apacheds-ldif-partition</artifactId>
         <version>${org.apache.directory.server.version}</version>
       </dependency>

Modified: directory/studio/trunk/repository/pom.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/repository/pom.xml?rev=1446115&r1=1446114&r2=1446115&view=diff
==============================================================================
--- directory/studio/trunk/repository/pom.xml (original)
+++ directory/studio/trunk/repository/pom.xml Thu Feb 14 11:02:07 2013
@@ -65,10 +65,6 @@
                 <!-- Apache Directory LDAP API dependencies -->
                 <artifactItem>
                   <groupId>org.apache.directory.api</groupId>
-                  <artifactId>api-ldap-client-api</artifactId>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>org.apache.directory.api</groupId>
                   <artifactId>api-asn1-api</artifactId>
                 </artifactItem>
                 <artifactItem>
@@ -85,6 +81,10 @@
                 </artifactItem>
                 <artifactItem>
                   <groupId>org.apache.directory.api</groupId>
+                  <artifactId>api-ldap-client-api</artifactId>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>org.apache.directory.api</groupId>
                   <artifactId>api-ldap-codec-core</artifactId>
                 </artifactItem>
                 <artifactItem>
@@ -109,11 +109,11 @@
                 </artifactItem>
                 <artifactItem>
                   <groupId>org.apache.directory.api</groupId>
-                  <artifactId>api-ldap-schema-data</artifactId>
+                  <artifactId>api-ldap-schema-converter</artifactId>
                 </artifactItem>
                 <artifactItem>
                   <groupId>org.apache.directory.api</groupId>
-                  <artifactId>api-ldap-schema-converter</artifactId>
+                  <artifactId>api-ldap-schema-data</artifactId>
                 </artifactItem>
                 <artifactItem>
                   <groupId>org.apache.directory.api</groupId>
@@ -123,10 +123,6 @@
                 <!-- ApacheDS dependencies -->
                 <artifactItem>
                   <groupId>org.apache.directory.server</groupId>
-                  <artifactId>apacheds-server-config</artifactId>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>org.apache.directory.server</groupId>
                   <artifactId>apacheds-core</artifactId>
                 </artifactItem>
                 <artifactItem>
@@ -143,6 +139,10 @@
                 </artifactItem>
                 <artifactItem>
                   <groupId>org.apache.directory.server</groupId>
+                  <artifactId>apacheds-kerberos-codec</artifactId>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>org.apache.directory.server</groupId>
                   <artifactId>apacheds-i18n</artifactId>
                 </artifactItem>
                 <artifactItem>
@@ -151,6 +151,10 @@
                 </artifactItem>
                 <artifactItem>
                   <groupId>org.apache.directory.server</groupId>
+                  <artifactId>apacheds-server-config</artifactId>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>org.apache.directory.server</groupId>
                   <artifactId>apacheds-xdbm-partition</artifactId>
                 </artifactItem>
                 <artifactItem>