package com.objecteye.service.impl; import com.objecteye.pojo.TokenUser; import com.objecteye.pojo.UserDetailsMsg; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Component; import java.util.List; @Component public class UserDetailServiceImpl implements UserDetailsService { private final PasswordEncoder passwordEncoder; @Autowired public UserDetailServiceImpl(PasswordEncoder passwordEncoder) { this.passwordEncoder = passwordEncoder; } @Autowired private MongoTemplate mongoTemplate; @Override public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException { List userDetailsMsgs = mongoTemplate.find(Query.query(Criteria.where("userName").is(s)), UserDetailsMsg.class); // admin UserDetailsMsg superAdminUser = new UserDetailsMsg(); superAdminUser.setUsername("superAdmin"); superAdminUser.setPassword("123456"); superAdminUser.setUserRole("1"); userDetailsMsgs.add(superAdminUser); if (userDetailsMsgs.size() > 0) { UserDetailsMsg userDetailsMsg = userDetailsMsgs.get(0); return new TokenUser(userDetailsMsg.getUsername(), passwordEncoder.encode(userDetailsMsg.getPassword())); } return null; } }