Browse Source

Merge pull request #1283 from nobodyiam/fix-spring-security-find-users

implement find users for spring security user service
Jason Song 6 years ago
parent
commit
9deb531eac

+ 2 - 0
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/repository/UserRepository.java

@@ -16,4 +16,6 @@ public interface UserRepository extends PagingAndSortingRepository<UserPO, Long>
   List<UserPO> findByUsernameLikeAndEnabled(String username, int enabled);
 
   UserPO findByUsername(String username);
+
+  List<UserPO> findByUsernameIn(List<String> userNames);
 }

+ 12 - 1
apollo-portal/src/main/java/com/ctrip/framework/apollo/portal/spi/springsecurity/SpringSecurityUserService.java

@@ -8,6 +8,7 @@ import com.ctrip.framework.apollo.portal.entity.po.UserPO;
 import com.ctrip.framework.apollo.portal.repository.UserRepository;
 import com.ctrip.framework.apollo.portal.spi.UserService;
 
+import java.util.Collections;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.authority.SimpleGrantedAuthority;
@@ -88,7 +89,17 @@ public class SpringSecurityUserService implements UserService {
 
   @Override
   public List<UserInfo> findByUserIds(List<String> userIds) {
-    return null;
+    List<UserPO> users = userRepository.findByUsernameIn(userIds);
+
+    if (CollectionUtils.isEmpty(users)) {
+      return Collections.emptyList();
+    }
+
+    List<UserInfo> result = Lists.newArrayList();
+
+    result.addAll(users.stream().map(UserPO::toUserInfo).collect(Collectors.toList()));
+
+    return result;
   }