|
59 | 59 | import password.pwm.svc.stats.StatisticsManager;
|
60 | 60 | import password.pwm.util.PasswordData;
|
61 | 61 | import password.pwm.util.i18n.LocaleHelper;
|
62 |
| -import password.pwm.util.java.JsonUtil; |
| 62 | +import password.pwm.util.java.JavaHelper; |
63 | 63 | import password.pwm.util.java.StringUtil;
|
64 | 64 | import password.pwm.util.java.TimeDuration;
|
65 | 65 | import password.pwm.util.logging.PwmLogger;
|
@@ -864,12 +864,18 @@ public static Iterator<UserIdentity> readUsersFromLdapForPermissions(
|
864 | 864 | {
|
865 | 865 | final UserSearchEngine userSearchEngine = pwmApplication.getUserSearchEngine();
|
866 | 866 | final Queue<UserIdentity> resultSet = new LinkedList<>();
|
| 867 | + final long searchTimeoutMs = JavaHelper.silentParseLong( |
| 868 | + pwmApplication.getConfig().readAppProperty( AppProperty.REPORTING_LDAP_SEARCH_TIMEOUT ), |
| 869 | + 30_000 ); |
867 | 870 |
|
868 | 871 | for ( final UserPermission userPermission : permissionList )
|
869 | 872 | {
|
870 | 873 | if ( resultSet.size() < maxResults )
|
871 | 874 | {
|
872 |
| - final SearchConfiguration searchConfiguration = SearchConfiguration.fromPermission( userPermission ); |
| 875 | + final SearchConfiguration searchConfiguration = SearchConfiguration.fromPermission( userPermission ) |
| 876 | + .toBuilder() |
| 877 | + .searchTimeout( searchTimeoutMs ) |
| 878 | + .build(); |
873 | 879 | final Map<UserIdentity, Map<String, String>> searchResults = userSearchEngine.performMultiUserSearch(
|
874 | 880 | searchConfiguration,
|
875 | 881 | maxResults - resultSet.size(),
|
@@ -897,65 +903,6 @@ public UserIdentity next( )
|
897 | 903 | };
|
898 | 904 | }
|
899 | 905 |
|
900 |
| - |
901 |
| - public static Iterator<UserIdentity> readAllUsersFromLdap( |
902 |
| - final PwmApplication pwmApplication, |
903 |
| - final SessionLabel sessionLabel, |
904 |
| - final String searchFilter, |
905 |
| - final int maxResults |
906 |
| - ) |
907 |
| - throws PwmUnrecoverableException, PwmOperationalException |
908 |
| - { |
909 |
| - final UserSearchEngine userSearchEngine = pwmApplication.getUserSearchEngine(); |
910 |
| - |
911 |
| - final SearchConfiguration searchConfiguration; |
912 |
| - { |
913 |
| - final SearchConfiguration.SearchConfigurationBuilder builder = SearchConfiguration.builder(); |
914 |
| - |
915 |
| - builder.enableValueEscaping( false ); |
916 |
| - builder.searchTimeout( Long.parseLong( pwmApplication.getConfig().readAppProperty( AppProperty.REPORTING_LDAP_SEARCH_TIMEOUT ) ) ); |
917 |
| - |
918 |
| - if ( searchFilter == null ) |
919 |
| - { |
920 |
| - builder.username( "*" ); |
921 |
| - } |
922 |
| - else |
923 |
| - { |
924 |
| - builder.filter( searchFilter ); |
925 |
| - } |
926 |
| - |
927 |
| - searchConfiguration = builder.build(); |
928 |
| - } |
929 |
| - |
930 |
| - LOGGER.debug( sessionLabel, () -> "beginning user search using parameters: " + ( JsonUtil.serialize( searchConfiguration ) ) ); |
931 |
| - |
932 |
| - final Map<UserIdentity, Map<String, String>> searchResults = userSearchEngine.performMultiUserSearch( |
933 |
| - searchConfiguration, |
934 |
| - maxResults, |
935 |
| - Collections.emptyList(), |
936 |
| - sessionLabel |
937 |
| - |
938 |
| - ); |
939 |
| - LOGGER.debug( sessionLabel, () -> "user search found " + searchResults.size() + " users" ); |
940 |
| - |
941 |
| - final Queue<UserIdentity> tempQueue = new LinkedList<>( searchResults.keySet() ); |
942 |
| - |
943 |
| - return new Iterator<UserIdentity>() |
944 |
| - { |
945 |
| - @Override |
946 |
| - public boolean hasNext( ) |
947 |
| - { |
948 |
| - return tempQueue.peek() != null; |
949 |
| - } |
950 |
| - |
951 |
| - @Override |
952 |
| - public UserIdentity next( ) |
953 |
| - { |
954 |
| - return tempQueue.poll(); |
955 |
| - } |
956 |
| - }; |
957 |
| - } |
958 |
| - |
959 | 906 | public static Instant readPasswordExpirationTime( final ChaiUser theUser )
|
960 | 907 | {
|
961 | 908 | try
|
|
0 commit comments