You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Matt Gilman (JIRA)" <ji...@apache.org> on 2017/12/14 20:06:00 UTC

[jira] [Commented] (NIFI-4677) LdapUserGroupProvider Sync Interval property conversion error

    [ https://issues.apache.org/jira/browse/NIFI-4677?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16291515#comment-16291515 ] 

Matt Gilman commented on NIFI-4677:
-----------------------------------

PR was posted: https://github.com/apache/nifi/pull/2341 and merged

> LdapUserGroupProvider Sync Interval property conversion error
> -------------------------------------------------------------
>
>                 Key: NIFI-4677
>                 URL: https://issues.apache.org/jira/browse/NIFI-4677
>             Project: Apache NiFi
>          Issue Type: Bug
>    Affects Versions: 1.4.0
>            Reporter: Kevin Doran
>            Assignee: Kevin Doran
>             Fix For: 1.5.0
>
>
> LdapUserGroupProvider, which was added in version 1.4.0, allows users to sync NiFi users and groups with an LDAP server. This is configured in authorizers.xml, and one of the configuration properties is Sync Interval, which allows and admin to specify the interval on which NiFi should poll the LDAP server to refresh its local copy of users and groups.
> A logic bug in time units conversions is inadvertently treating milliseconds as seconds, meaning the sync interval that will actually be scheduled will be 1000x the user-configured value.
> Here is a code snippet from [LdapUserGroupProvider.java|https://github.com/apache/nifi/blob/rel/nifi-1.4.0/nifi-nar-bundles/nifi-ldap-iaa-providers-bundle/nifi-ldap-iaa-providers/src/main/java/org/apache/nifi/ldap/tenants/LdapUserGroupProvider.java#L349]:
> {code:java}
> final PropertyValue rawSyncInterval = configurationContext.getProperty(PROP_SYNC_INTERVAL);
> //...        
> syncInterval = FormatUtils.getTimeDuration(rawSyncInterval.getValue(), TimeUnit.MILLISECONDS);
> //...
> // schedule the background thread to load the users/groups
> ldapSync.scheduleWithFixedDelay(() -> load(context), syncInterval, syncInterval, TimeUnit.SECONDS);
> {code}
> The fix should be very simple: simply change the TimeUnits of syncInterval.
> In the meantime, for users impacted by this known issue, a workaround is to scale the value set in the Sync Interval property by 1/1000.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)