









@RestController
public class UserController {
@Autowired
UserMapper userMapper;
/**
* 查询所有用户
*/
@GetMapping("/user/all/")
public List<User> getAll() {
return userMapper.selectList(null);
}
/**
* 查询单个用户
*/
@GetMapping("/user/{userId}/")
public User getUser(@PathVariable int userId) {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("id",userId);
return userMapper.selectOne(queryWrapper);
// 范围遍历
// public List getUser(int userId)
// queryWrapper.ge("id", 2).le("id", 3);
// return userMapper.selectList(queryWrapper);
}
/**
* 添加某个用户 直接输入 id name password
* @param userId
* @param username
* @param password
* @return Add User Sucessfully
*/
@GetMapping("/user/add/{userId}/{username}/{password}/")
public String addUser (@PathVariable int userId,
@PathVariable String username,
@PathVariable String password) {
User user = new User(userId, username, password);
userMapper.insert(user);
return "Add User Sucessfully";
}
/**
* 删除某个用户,直接输入 id
* @param userId
* @return Delete User Successfully
*/
@GetMapping("/user/delete/{userId}/")
public String deleteUser(@PathVariable int userId) {
userMapper.deleteById(userId);
return "Delete User Successfully";
}
}
spring security机制:用户认证



@Service
public class UserDetailsServiceImpl implements UserDetailsService {
//快捷键 windowsalt + insert / mac是option + enter
@Autowired
private UserMapper userMapper;
// 传入 username 返回对应的信息,在这里也就是id name pwd
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("username", username);
User user = userMapper.selectOne(queryWrapper);
if (user == null) {
throw new RuntimeException("用户不存在");
}
return new UserDetailsImpl(user);
}
}

@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserDetailsImpl implements UserDetails {
private User user;
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return null;
}
@Override
public String getPassword() {
return user.getPassword();
}
@Override
public String getUsername() {
return user.getUsername();
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return true;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return true;
}
}
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
