protected void refreshUI()

in plugins/apacheds.configuration/src/main/java/org/apache/directory/studio/apacheds/configuration/editor/LdapLdapsServersPage.java [1904:2103]


    protected void refreshUI()
    {
        if ( isInitialized() )
        {
            removeListeners();

            // LDAP Server ------------------------------------------------------------------------
            TransportBean ldapServerTransportBean = getLdapServerTransportBean();
            setSelection( enableLdapCheckbox, ldapServerTransportBean.isEnabled() );
            
            boolean ldapEnabled = enableLdapCheckbox.getSelection();

            setEnabled( ldapPortText, ldapEnabled );
            setText( ldapPortText, Integer.toString( ldapServerTransportBean.getSystemPort() ) );

            setEnabled( ldapAddressText, ldapEnabled );
            setText( ldapAddressText, ldapServerTransportBean.getTransportAddress() );

            setEnabled( ldapNbThreadsText, ldapEnabled );
            setText( ldapNbThreadsText, Integer.toString( ldapServerTransportBean.getTransportNbThreads() ) );
            
            setEnabled( ldapBackLogSizeText, ldapEnabled );
            setText( ldapBackLogSizeText, Integer.toString( ldapServerTransportBean.getTransportBackLog() ) );

            // LDAPS Server -----------------------------------------------------------------------
            TransportBean ldapsServerTransportBean = getLdapsServerTransportBean();
            setSelection( enableLdapsCheckbox, ldapsServerTransportBean.isEnabled() );

            boolean ldapsEnabled = enableLdapsCheckbox.getSelection();

            setEnabled( ldapsPortText, ldapsEnabled );
            setText( ldapsPortText, Integer.toString( ldapsServerTransportBean.getSystemPort() ) );

            setEnabled( ldapsAddressText, ldapsEnabled );
            setText( ldapsAddressText, ldapsServerTransportBean.getTransportAddress() );

            setEnabled( ldapsNbThreadsText, ldapsEnabled );
            setText( ldapsNbThreadsText, Integer.toString( ldapsServerTransportBean.getTransportNbThreads() ) );
            
            setEnabled( ldapsBackLogSizeText, ldapsEnabled );
            setText( ldapsBackLogSizeText, Integer.toString( ldapsServerTransportBean.getTransportBackLog() ) );

            // SASL Properties --------------------------------------------------------------------
            LdapServerBean ldapServerBean = getLdapServerBean();
            setText( saslHostText, ldapServerBean.getLdapServerSaslHost() );
            setText( saslPrincipalText, ldapServerBean.getLdapServerSaslPrincipal() );
            setText( saslSearchBaseDnText, ldapServerBean.getSearchBaseDn().toString() );
            saslRealmsTableViewer.setInput( ldapServerBean.getLdapServerSaslRealms() );
            saslRealmsTableViewer.refresh();

            // Keystore Properties
            setText( keystoreFileText, ldapServerBean.getLdapServerKeystoreFile() );
            setText( keystorePasswordText, ldapServerBean.getLdapServerCertificatePassword() );

            // Supported Auth Mechanisms
            List<SaslMechHandlerBean> saslMechHandlers = ldapServerBean.getSaslMechHandlers();
            uncheckAllSupportedAuthenticationMechanisms();
            
            for ( SaslMechHandlerBean saslMechHandler : saslMechHandlers )
            {
                if ( SASL_MECHANISMS_SIMPLE.equalsIgnoreCase( saslMechHandler.getSaslMechName() ) )
                {
                    setSelection( authMechSimpleCheckbox, saslMechHandler.isEnabled() );
                }
                else if ( SupportedSaslMechanisms.GSSAPI.equalsIgnoreCase( saslMechHandler.getSaslMechName() ) )
                {
                    setSelection( authMechGssapiCheckbox, saslMechHandler.isEnabled() );
                }
                else if ( SupportedSaslMechanisms.CRAM_MD5.equalsIgnoreCase( saslMechHandler.getSaslMechName() ) )
                {
                    setSelection( authMechCramMd5Checkbox, saslMechHandler.isEnabled() );
                }
                else if ( SupportedSaslMechanisms.DIGEST_MD5.equalsIgnoreCase( saslMechHandler.getSaslMechName() ) )
                {
                    setSelection( authMechDigestMd5Checkbox, saslMechHandler.isEnabled() );
                }
                else if ( SupportedSaslMechanisms.GSS_SPNEGO.equalsIgnoreCase( saslMechHandler.getSaslMechName() ) )
                {
                    setSelection( authMechGssSpnegoCheckbox, saslMechHandler.isEnabled() );
                    setEnabled( authMechGssSpnegoText, saslMechHandler.isEnabled() );
                    setText( authMechGssSpnegoText, saslMechHandler.getNtlmMechProvider() );
                }
                else if ( SupportedSaslMechanisms.NTLM.equalsIgnoreCase( saslMechHandler.getSaslMechName() ) )
                {
                    setSelection( authMechNtlmCheckbox, saslMechHandler.isEnabled() );
                    setEnabled( authMechNtlmText, saslMechHandler.isEnabled() );
                    setText( authMechNtlmText, saslMechHandler.getNtlmMechProvider() );
                }
            }
            
            // Delegating authentication
            // TODO

            // Limits
            setText( maxTimeLimitText, Integer.toString( ldapServerBean.getLdapServerMaxTimeLimit() ) );
            setText( maxSizeLimitText, Integer.toString( ldapServerBean.getLdapServerMaxSizeLimit() ) );
            setText( maxPduSizeText, Integer.toString( ldapServerBean.getMaxPDUSize() ) );

            // Enable TLS Checkbox
            setSelection( enableTlsCheckbox, getTlsExtendedOpHandlerBean().isEnabled() );

            // Hashing Password widgets
            InterceptorBean hashingMethodInterceptor = getHashingPasswordInterceptor();
            
            if ( hashingMethodInterceptor == null )
            {
                // No hashing method interceptor
                setSelection( enableServerSidePasswordHashingCheckbox, false );
                setEnabled( hashingMethodComboViewer.getCombo(), enableServerSidePasswordHashingCheckbox.getSelection() );
                setSelection( hashingMethodComboViewer, LdapSecurityConstants.HASH_METHOD_SSHA );
            }
            else
            {
                LdapSecurityConstants hashingMethod = getHashingMethodFromInterceptor( hashingMethodInterceptor );
                
                if ( hashingMethod != null )
                {
                    // Setting selection for the hashing method
                    setSelection( enableServerSidePasswordHashingCheckbox, hashingMethodInterceptor.isEnabled() );
                    setEnabled( hashingMethodComboViewer.getCombo(),
                        enableServerSidePasswordHashingCheckbox.getSelection() );
                    setSelection( hashingMethodComboViewer, hashingMethod );
                }
                else
                {
                    // Couldn't determine which hashing method is used
                    setSelection( enableServerSidePasswordHashingCheckbox, false );
                    setEnabled( hashingMethodComboViewer.getCombo(),
                        enableServerSidePasswordHashingCheckbox.getSelection() );
                    setSelection( hashingMethodComboViewer, LdapSecurityConstants.HASH_METHOD_SSHA );
                }
            }

            // SSL/Start TLS Cipher Suites
            List<String> enabledCiphers = ldapServerTransportBean.getEnabledCiphers();
            List<SupportedCipher> supportedCiphers = new ArrayList<>();
            
            if ( enabledCiphers == null )
            {
                // We don't have any selected ciphers. Propose the full list
                for ( SupportedCipher cipher : SupportedCipher.supportedCiphersJava8 )
                {
                    supportedCiphers.add( cipher );
                }
            }
            else
            {
                for ( String supportedCipher : enabledCiphers )
                {
                    SupportedCipher cipher = SupportedCipher.getByName( supportedCipher );

                    if ( cipher != null )
                    {
                        supportedCiphers.add( cipher );
                    }
                }
            }
            
            ciphersSuiteTableViewer.setCheckedElements( supportedCiphers.toArray() );
            ciphersSuiteTableViewer.refresh();
            
            // SSL/Start TLS Enabled Protocols
            // Check if we have a LDAP transport
            TransportBean transportBean = getLdapTransportBean( TRANSPORT_ID_LDAP );
            
            // Ok, process the enabled protocols now
            List<String> enabledProtocols = transportBean.getEnabledProtocols();
                
            if ( enabledProtocols != null )
            {
                for ( String enabledProtocol : transportBean.getEnabledProtocols() )
                {
                    if ( SSL_V3.equalsIgnoreCase( enabledProtocol ) )
                    {
                        setSelection( sslv3Checkbox, true );
                    }
                    else if ( TLS_V1_0.equalsIgnoreCase( enabledProtocol ) )
                    {
                        setSelection( tlsv1_0Checkbox, true );
                    }
                    else if ( TLS_V1_1.equalsIgnoreCase( enabledProtocol ) )
                    {
                        setSelection( tlsv1_1Checkbox, true );
                    }
                    else if ( TLS_V1_2.equalsIgnoreCase( enabledProtocol ) )
                    {
                        setSelection( tlsv1_2Checkbox, true );
                    }
                }
            }
            
            // Replication Pinger Sleep
            setText( replicationPingerSleepText, Integer.toString( ldapServerBean.getReplPingerSleep() ) );

            // Disk Synchronization Delay
            setText( diskSynchronizationDelayText, Long.toString( getDirectoryServiceBean().getDsSyncPeriodMillis() ) );

            addListeners();
        }
    }