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/04/18 16:25:36 UTC
svn commit: r1469342 - in
/directory/studio/trunk/plugins/apacheds.configuration.v2: ./
src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/
Author: pamarcelot
Date: Thu Apr 18 14:25:35 2013
New Revision: 1469342
URL: http://svn.apache.org/r1469342
Log:
Initial work on a UI for configuring the password policy configurations.
Modified:
directory/studio/trunk/plugins/apacheds.configuration.v2/plugin.xml
directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/PasswordPolicyPage.java
directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditor.java
Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/plugin.xml
URL: http://svn.apache.org/viewvc/directory/studio/trunk/plugins/apacheds.configuration.v2/plugin.xml?rev=1469342&r1=1469341&r2=1469342&view=diff
==============================================================================
--- directory/studio/trunk/plugins/apacheds.configuration.v2/plugin.xml (original)
+++ directory/studio/trunk/plugins/apacheds.configuration.v2/plugin.xml Thu Apr 18 14:25:35 2013
@@ -65,11 +65,10 @@
value="2.0.0">
</objectState>
<!-- Special case to handle ApacheDS servers launched via Eclipse -->
- <!-- TODO: Should be removed before a release -->
- <!--<objectState
+ <objectState
name="vendorVersion"
value="${project.version}">
- </objectState>-->
+ </objectState>
</or>
</and>
</visibility>
Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/PasswordPolicyPage.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/PasswordPolicyPage.java?rev=1469342&r1=1469341&r2=1469342&view=diff
==============================================================================
--- directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/PasswordPolicyPage.java (original)
+++ directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/PasswordPolicyPage.java Thu Apr 18 14:25:35 2013
@@ -20,13 +20,23 @@
package org.apache.directory.studio.apacheds.configuration.v2.editor;
+import org.apache.directory.server.config.beans.AuthenticationInterceptorBean;
+import org.apache.directory.server.config.beans.DirectoryServiceBean;
+import org.apache.directory.server.config.beans.InterceptorBean;
+import org.apache.directory.server.config.beans.PasswordPolicyBean;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.ComboViewer;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.SWT;
+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.ui.forms.IManagedForm;
-import org.eclipse.ui.forms.editor.FormEditor;
-import org.eclipse.ui.forms.editor.FormPage;
+import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.forms.widgets.FormToolkit;
-import org.eclipse.ui.forms.widgets.ScrolledForm;
+import org.eclipse.ui.forms.widgets.Section;
+import org.eclipse.ui.forms.widgets.TableWrapData;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
/**
@@ -34,14 +44,42 @@ import org.eclipse.ui.forms.widgets.Scro
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
-public class PasswordPolicyPage extends FormPage
+public class PasswordPolicyPage extends ServerConfigurationEditorPage
{
+ private static final String AUTHENTICATION_INTERCEPTOR_ID = "authenticationInterceptor";
+
+ private static final String PASSWORD_POLICY_ID_DEFAULT = "default";
+
/** The Page ID*/
public static final String ID = PasswordPolicyPage.class.getName(); //$NON-NLS-1$
/** The Page Title */
private static final String TITLE = Messages.getString( "PasswordPolicyPage.PasswordPolicy" ); //$NON-NLS-1$
+ // UI Widgets
+ private ComboViewer checkQualityComboViewer;
+ private Button minimumLengthCheckbox;
+ private Text minimumLengthText;
+ private Button maximumLengthCheckbox;
+ private Text maximumLengthText;
+ private Text minimumAgeText;
+ private Text maximumAgeText;
+ private Button expireWarningCheckbox;
+ private Text expireWarningText;
+ private Button graceAuthenticationLimitCheckbox;
+ private Text graceAuthenticationLimitText;
+ private Button graceExpireCheckbox;
+ private Text graceExpireText;
+ private Button mustChangeCheckbox;
+ private Button allowUserChangeCheckbox;
+ private Button safeModifyCheckbox;
+ private Button lockoutCheckbox;
+ private Text lockoutDurationText;
+ private Text maxFailureText;
+ private Text failureCountIntervalText;
+ private Button inHistoryCheckbox;
+ private Text inHistoryText;
+
/**
* Creates a new instance of GeneralPage.
@@ -49,7 +87,7 @@ public class PasswordPolicyPage extends
* @param editor
* the associated editor
*/
- public PasswordPolicyPage( FormEditor editor )
+ public PasswordPolicyPage( ServerConfigurationEditor editor )
{
super( editor, ID, TITLE );
}
@@ -58,15 +96,464 @@ public class PasswordPolicyPage extends
/**
* {@inheritDoc}
*/
- protected void createFormContent( IManagedForm managedForm )
+ protected void createFormContent( Composite parent, FormToolkit toolkit )
+ {
+ TableWrapLayout twl = new TableWrapLayout();
+ twl.numColumns = 2;
+ parent.setLayout( twl );
+
+ // Left Composite
+ Composite leftComposite = toolkit.createComposite( parent );
+ leftComposite.setLayout( new GridLayout() );
+ TableWrapData leftCompositeTableWrapData = new TableWrapData( TableWrapData.FILL, TableWrapData.TOP );
+ leftCompositeTableWrapData.grabHorizontal = true;
+ leftComposite.setLayoutData( leftCompositeTableWrapData );
+
+ // Right Composite
+ Composite rightComposite = toolkit.createComposite( parent );
+ rightComposite.setLayout( new GridLayout() );
+ TableWrapData rightCompositeTableWrapData = new TableWrapData( TableWrapData.FILL, TableWrapData.TOP );
+ rightCompositeTableWrapData.grabHorizontal = true;
+ rightComposite.setLayoutData( rightCompositeTableWrapData );
+
+ // Creating the sections
+ createQualitySection( toolkit, leftComposite );
+ createExpirationSection( toolkit, leftComposite );
+ createOptionsSection( toolkit, rightComposite );
+ createLockoutSection( toolkit, rightComposite );
+
+ // // Attribute (pwdAttribute)
+ // Text attributeText = toolkit.createText( composite, "" );
+ // attributeText.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false, 2, 1 ) );
+
+ }
+
+
+ /**
+ * Creates the Quality section.
+ *
+ * @param toolkit the toolkit to use
+ * @param parent the parent composite
+ */
+ private void createQualitySection( FormToolkit toolkit, Composite parent )
+ {
+ // Creation of the section
+ Section section = toolkit.createSection( parent, Section.TITLE_BAR );
+ section.setText( "Quality" );
+ section.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
+ Composite composite = toolkit.createComposite( section );
+ toolkit.paintBordersFor( composite );
+ GridLayout gridLayout = new GridLayout( 3, false );
+ gridLayout.marginHeight = gridLayout.marginWidth = 0;
+ composite.setLayout( gridLayout );
+ section.setClient( composite );
+
+ // Check Quality (pwdCheckQuality)
+ toolkit.createLabel( composite, "Check Quality:" );
+ checkQualityComboViewer = new ComboViewer( composite );
+ checkQualityComboViewer.setContentProvider( new ArrayContentProvider() );
+ checkQualityComboViewer.setInput( new CheckQuality[]
+ { CheckQuality.DISABLED, CheckQuality.RELAXED, CheckQuality.STRICT } );
+ checkQualityComboViewer.getControl().setLayoutData(
+ new GridData( SWT.BEGINNING, SWT.CENTER, false, false, 2, 1 ) );
+
+ // Minimum Length (pwdMinLength)
+ minimumLengthCheckbox = toolkit.createButton( composite, "Enable Mimimum Length", SWT.CHECK );
+ minimumLengthCheckbox.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false, 3, 1 ) );
+
+ toolkit.createLabel( composite, " " );
+ minimumLengthText = toolkit.createText( composite, "" );
+
+ // Maximum Length (pwdMaxLength)
+ maximumLengthCheckbox = toolkit.createButton( composite, "Enable Maximum Length", SWT.CHECK );
+ maximumLengthCheckbox.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false, 3, 1 ) );
+
+ toolkit.createLabel( composite, " " );
+ maximumLengthText = toolkit.createText( composite, "" );
+ }
+
+
+ /**
+ * Creates the Expiration section.
+ *
+ * @param toolkit the toolkit to use
+ * @param parent the parent composite
+ */
+ private void createExpirationSection( FormToolkit toolkit, Composite parent )
+ {
+ // Creation of the section
+ Section section = toolkit.createSection( parent, Section.TITLE_BAR );
+ section.setText( "Expiration" );
+ section.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
+ Composite composite = toolkit.createComposite( section );
+ toolkit.paintBordersFor( composite );
+ GridLayout gridLayout = new GridLayout( 3, false );
+ gridLayout.marginHeight = gridLayout.marginWidth = 0;
+ composite.setLayout( gridLayout );
+ section.setClient( composite );
+
+ // Minimum Age (pwdMinAge)
+ toolkit.createLabel( composite, "Mimimum Age:" );
+ minimumAgeText = toolkit.createText( composite, "" );
+ minimumAgeText.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false, 2, 1 ) );
+
+ // Maximum Age (pwdMaxAge)
+ toolkit.createLabel( composite, "Maximum Age:" );
+ maximumAgeText = toolkit.createText( composite, "" );
+ maximumAgeText.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false, 2, 1 ) );
+
+ // Expire Warning (pwdExpireWarning)
+ expireWarningCheckbox = toolkit.createButton( composite, "Enable Expire Warning", SWT.CHECK );
+ expireWarningCheckbox.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false, 3, 1 ) );
+
+ toolkit.createLabel( composite, " " );
+ expireWarningText = toolkit.createText( composite, "" );
+
+ // Grace Authentication Limit (pwdGraceAuthNLimit)
+ graceAuthenticationLimitCheckbox = toolkit.createButton( composite, "Enable Grace Authentication Limit",
+ SWT.CHECK );
+ graceAuthenticationLimitCheckbox.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false, 3, 1 ) );
+
+ toolkit.createLabel( composite, " " );
+ graceAuthenticationLimitText = toolkit.createText( composite, "" );
+
+ // Grace Expire (pwdGraceExpire)
+ graceExpireCheckbox = toolkit.createButton( composite, "Enable Grace Expire", SWT.CHECK );
+ graceExpireCheckbox.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false, 3, 1 ) );
+
+ toolkit.createLabel( composite, " " );
+ graceExpireText = toolkit.createText( composite, "" );
+ }
+
+
+ /**
+ * Creates the Options section.
+ *
+ * @param toolkit the toolkit to use
+ * @param parent the parent composite
+ */
+ private void createOptionsSection( FormToolkit toolkit, Composite parent )
+ {
+ // Creation of the section
+ Section section = toolkit.createSection( parent, Section.TITLE_BAR );
+ section.setText( "Options" );
+ section.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
+ Composite composite = toolkit.createComposite( section );
+ toolkit.paintBordersFor( composite );
+ GridLayout gridLayout = new GridLayout( 2, false );
+ gridLayout.marginHeight = gridLayout.marginWidth = 0;
+ composite.setLayout( gridLayout );
+ section.setClient( composite );
+
+ // Must Change (pwdMustChange)
+ mustChangeCheckbox = toolkit.createButton( composite, "Enable Must Change", SWT.CHECK );
+ mustChangeCheckbox.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false, 2, 1 ) );
+
+ // Allow User Change (pwdAllowUserChange)
+ allowUserChangeCheckbox = toolkit.createButton( composite, "Enable Allow User Change", SWT.CHECK );
+ allowUserChangeCheckbox.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false, 2, 1 ) );
+
+ // Safe Modify (pwdSafeModify)
+ safeModifyCheckbox = toolkit.createButton( composite, "Enable Safe Modify", SWT.CHECK );
+ safeModifyCheckbox.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false, 2, 1 ) );
+ }
+
+
+ /**
+ * Creates the Lockout section.
+ *
+ * @param toolkit the toolkit to use
+ * @param parent the parent composite
+ */
+ private void createLockoutSection( FormToolkit toolkit, Composite parent )
+ {
+ // Creation of the section
+ Section section = toolkit.createSection( parent, Section.TITLE_BAR );
+ section.setText( "Lockout" );
+ section.setLayoutData( new GridData( SWT.FILL, SWT.NONE, true, false ) );
+ Composite composite = toolkit.createComposite( section );
+ toolkit.paintBordersFor( composite );
+ GridLayout gridLayout = new GridLayout( 3, false );
+ gridLayout.marginHeight = gridLayout.marginWidth = 0;
+ composite.setLayout( gridLayout );
+ section.setClient( composite );
+
+ // Lockout (pwdLockout)
+ lockoutCheckbox = toolkit.createButton( composite, "Enable Lockout", SWT.CHECK );
+ lockoutCheckbox.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false, 3, 1 ) );
+
+ // Lockout Duration (pwdLockoutDuration)
+ toolkit.createLabel( composite, "Lockout Duration:" );
+ lockoutDurationText = toolkit.createText( composite, "" );
+ lockoutDurationText.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false, 2, 1 ) );
+
+ // Max Failure (pwdMaxFailure)
+ toolkit.createLabel( composite, "Max Failure:" );
+ maxFailureText = toolkit.createText( composite, "" );
+ maxFailureText.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false, 2, 1 ) );
+
+ // Failure Count Interval (pwdFailureCountInterval)
+ toolkit.createLabel( composite, "Failure Count Interval:" );
+ failureCountIntervalText = toolkit.createText( composite, "" );
+ failureCountIntervalText.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false, 2, 1 ) );
+
+ // In History (pwdInHistory)
+ inHistoryCheckbox = toolkit.createButton( composite, "Enable In History", SWT.CHECK );
+ inHistoryCheckbox.setLayoutData( new GridData( SWT.BEGINNING, SWT.CENTER, false, false, 3, 1 ) );
+
+ toolkit.createLabel( composite, " " );
+ inHistoryText = toolkit.createText( composite, "" );
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void refreshUI()
+ {
+ PasswordPolicyBean passwordPolicy = getPasswordPolicy();
+
+ // Check Quality
+ checkQualityComboViewer.setSelection( new StructuredSelection( CheckQuality.valueOf( passwordPolicy
+ .getPwdCheckQuality() ) ) );
+
+ // Miminum Length
+ int minimumLength = passwordPolicy.getPwdMinLength();
+ minimumLengthCheckbox.setSelection( minimumLength != 0 );
+ minimumLengthText.setText( "" + minimumLength );
+
+ // Maximum Length
+ int maximumLength = passwordPolicy.getPwdMaxLength();
+ maximumLengthCheckbox.setSelection( maximumLength != 0 );
+ maximumLengthText.setText( "" + maximumLength );
+
+ // Minimum Age
+ minimumAgeText.setText( "" + passwordPolicy.getPwdMinAge() );
+
+ // Maximum Age
+ maximumAgeText.setText( "" + passwordPolicy.getPwdMaxAge() );
+
+ // Expire Warning
+ expireWarningCheckbox.setSelection( passwordPolicy.getPwdExpireWarning() == 0 );
+ expireWarningText.setText( "" + passwordPolicy.getPwdExpireWarning() );
+
+ // Grace Authentication Limit
+ int graceAuthenticationLimit = passwordPolicy.getPwdGraceAuthNLimit();
+ graceAuthenticationLimitCheckbox.setSelection( graceAuthenticationLimit != 0 );
+ graceAuthenticationLimitText.setText( "" + graceAuthenticationLimit );
+
+ // Grace Expire
+ int graceExpire = passwordPolicy.getPwdGraceExpire();
+ graceExpireCheckbox.setSelection( graceExpire != 0 );
+ graceExpireText.setText( "" + graceExpire );
+
+ // Must Change
+ mustChangeCheckbox.setSelection( passwordPolicy.isPwdMustChange() );
+
+ // Allow User Change
+ allowUserChangeCheckbox.setSelection( passwordPolicy.isPwdAllowUserChange() );
+
+ // Safe Modify
+ safeModifyCheckbox.setSelection( passwordPolicy.isPwdSafeModify() );
+
+ // Lockout
+ lockoutCheckbox.setSelection( passwordPolicy.isPwdLockout() );
+
+ // Lockout Duration
+ lockoutDurationText.setText( "" + passwordPolicy.getPwdLockoutDuration() );
+
+ // Max Failure
+ maxFailureText.setText( "" + passwordPolicy.getPwdMaxFailure() );
+
+ // Failure Count Interval
+ failureCountIntervalText.setText( "" + passwordPolicy.getPwdFailureCountInterval() );
+
+ // In History
+ inHistoryCheckbox.setSelection( passwordPolicy.getPwdInHistory() != 0 );
+ inHistoryText.setText( "" + passwordPolicy.getPwdInHistory() );
+ }
+
+
+ /**
+ * Gets the Password Policy bean.
+ *
+ * @return the Password Policy bean
+ */
+ private PasswordPolicyBean getPasswordPolicy()
+ {
+ return getPasswordPolicyBean( getDirectoryServiceBean() );
+ }
+
+
+ /**
+ * Gets the Password Policy bean.
+ *
+ * @param directoryServiceBean the directory service bean
+ * @return the Password Policy bean
+ */
+ public static PasswordPolicyBean getPasswordPolicyBean( DirectoryServiceBean directoryServiceBean )
+ {
+ // Finding the password policy
+ PasswordPolicyBean passwordPolicyBean = findPasswordPolicyBean( directoryServiceBean );
+
+ if ( passwordPolicyBean == null )
+ {
+ addPasswordPolicyBean( directoryServiceBean );
+ }
+
+ return passwordPolicyBean;
+ }
+
+
+ /**
+ * Gets the Password Policy bean.
+ *
+ * @param directoryServiceBean the directory service bean
+ * @return the Password Policy bean
+ */
+ private static PasswordPolicyBean findPasswordPolicyBean( DirectoryServiceBean directoryServiceBean )
{
- ScrolledForm form = managedForm.getForm();
- form.setText( Messages.getString( "PasswordPolicyPage.PasswordPolicy" ) ); //$NON-NLS-1$
+ return getPasswordPolicyBean( getAuthenticationInterceptorBean( directoryServiceBean ) );
+ }
+
- Composite parent = form.getBody();
- parent.setLayout( new GridLayout() );
+ /**
+ * Gets the authentication interceptor.
+ *
+ * @param directoryServiceBean the directory service bean
+ * @return the authentication interceptor
+ */
+ private static AuthenticationInterceptorBean getAuthenticationInterceptorBean(
+ DirectoryServiceBean directoryServiceBean )
+ {
+ // Looking for the authentication interceptor
+ for ( InterceptorBean interceptor : directoryServiceBean.getInterceptors() )
+ {
+ if ( AUTHENTICATION_INTERCEPTOR_ID.equalsIgnoreCase( interceptor.getInterceptorId() )
+ && ( interceptor instanceof AuthenticationInterceptorBean ) )
+ {
+ return ( AuthenticationInterceptorBean ) interceptor;
+ }
+ }
+
+ return null;
+ }
+
+
+ /**
+ * Gets the Password Policy bean.
+ *
+ * @param authenticationInterceptor the authentication interceptor
+ * @return the Password Policy bean
+ */
+ private static PasswordPolicyBean getPasswordPolicyBean( AuthenticationInterceptorBean authenticationInterceptor )
+ {
+ // Looking for the default password policy
+ if ( authenticationInterceptor != null )
+ {
+ for ( PasswordPolicyBean passwordPolicy : authenticationInterceptor.getPasswordPolicies() )
+ {
+ if ( PASSWORD_POLICY_ID_DEFAULT.equalsIgnoreCase( passwordPolicy.getPwdId() ) )
+ {
+ return passwordPolicy;
+ }
+ }
+ }
+
+ return null;
+ }
+
+
+ /**
+ * Adds the password policy to the directory service.
+ *
+ * @param directoryServiceBean the directory service bean
+ */
+ private static void addPasswordPolicyBean( DirectoryServiceBean directoryServiceBean )
+ {
+ AuthenticationInterceptorBean authenticationInterceptor = getAuthenticationInterceptorBean( directoryServiceBean );
+
+ if ( authenticationInterceptor != null )
+ {
+ // Creating the password policy
+ PasswordPolicyBean passwordPolicy = new PasswordPolicyBean();
+
+ // Configuring the password policy
+ passwordPolicy.setPwdId( PASSWORD_POLICY_ID_DEFAULT );
+ // TODO add other parameters
+
+ // Adding the password policy to the authentication interceptor
+ authenticationInterceptor.addPasswordPolicies( passwordPolicy );
+ }
+ }
+
+ /**
+ * This enum is used for the check quality value.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+ private enum CheckQuality
+ {
+ DISABLED(0),
+ RELAXED(1),
+ STRICT(2);
+
+ /** The value */
+ private int value;
+
+
+ /**
+ * Creates a new instance of CheckQuality.
+ *
+ * @param value the value
+ */
+ private CheckQuality( int value )
+ {
+ this.value = value;
+ }
+
+
+ /**
+ * Gets the value.
+ *
+ * @return the value
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+
+ public static CheckQuality valueOf( int value )
+ {
+ for ( CheckQuality checkQuality : CheckQuality.class.getEnumConstants() )
+ {
+ if ( checkQuality.getValue() == value )
+ {
+ return checkQuality;
+ }
+ }
+
+ throw new IllegalArgumentException( "There is no CheckQuality value for :" + value );
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ public String toString()
+ {
+ switch ( this )
+ {
+ case DISABLED:
+ return "Disabled";
+ case RELAXED:
+ return "Relaxed";
+ case STRICT:
+ return "Strict";
+ }
- FormToolkit toolkit = managedForm.getToolkit();
- toolkit.decorateFormHeading( form.getForm() );
+ return super.toString();
+ }
}
-}
+}
\ No newline at end of file
Modified: directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditor.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/ServerConfigurationEditor.java?rev=1469342&r1=1469341&r2=1469342&view=diff
==============================================================================
--- directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditor.java (original)
+++ directory/studio/trunk/plugins/apacheds.configuration.v2/src/main/java/org/apache/directory/studio/apacheds/configuration/v2/editor/ServerConfigurationEditor.java Thu Apr 18 14:25:35 2013
@@ -65,6 +65,7 @@ public class ServerConfigurationEditor e
private LdapLdapsServersPage ldapLdapsServersPage;
private KerberosServerPage kerberosServerPage;
private PartitionsPage partitionsPage;
+ private PasswordPolicyPage passwordPolicyPage;
private ReplicationPage replicationPage;
@@ -316,6 +317,7 @@ public class ServerConfigurationEditor e
ldapLdapsServersPage.refreshUI();
kerberosServerPage.refreshUI();
partitionsPage.refreshUI();
+ passwordPolicyPage.refreshUI();
replicationPage.refreshUI();
}
@@ -371,6 +373,8 @@ public class ServerConfigurationEditor e
addPage( kerberosServerPage );
partitionsPage = new PartitionsPage( this );
addPage( partitionsPage );
+ passwordPolicyPage = new PasswordPolicyPage( this );
+ addPage( passwordPolicyPage );
replicationPage = new ReplicationPage( this );
addPage( replicationPage );
}