### Question:
BaseLoginInfoController extends BaseController<BaseLoginInfoService, BaseLoginInfo> { @PostMapping("/validate") @ApiOperation(value = "用户登录", notes = "供鉴权服务进行调用，验证用户账户、密码，进而生成token") @ApiImplicitParams({ @ApiImplicitParam(value = "账户", required = true, dataType = "String", name = "loginname"), @ApiImplicitParam(value = "密码", required = true, dataType = "String", name = "password") }) public JJWTinfo login(@RequestParam("loginname")String loginname,@RequestParam("password") String password) { BaseLoginInfo entity = new BaseLoginInfo(); entity.setLoginName(loginname); Optional<BaseLoginInfo> oLogin = loginInfoService.selectOne(entity); if (oLogin.map(o -> o.getPassword().equals(DigestUtils.md5DigestAsHex(password.getBytes()))).orElse(false)) { Optional<BaseUserInfo> oUser = userInfoService.selectById(oLogin.get().getLoginId()); if (oUser.isPresent()) { BaseUserInfo userInfo = oUser.get(); JJWTinfo iTinfo = new JJWTinfo(userInfo.getLoginName(), String.valueOf(userInfo.getUserId()), userInfo.getUserName()); log.debug("***********************用户：【{}】校验密码成功*********************************************************",loginname); return iTinfo; }else { throw new AuthException("user not exits."); } }else { throw new AuthException("loginname or password error."); } }  @PostMapping("/validate") @ApiOperation(value = "用户登录", notes = "供鉴权服务进行调用，验证用户账户、密码，进而生成token") @ApiImplicitParams({ @ApiImplicitParam(value = "账户", required = true, dataType = "String", name = "loginname"), @ApiImplicitParam(value = "密码", required = true, dataType = "String", name = "password") }) JJWTinfo login(@RequestParam("loginname")String loginname,@RequestParam("password") String password);  }### Answer:
@Test public void test() { String password = "qqq123"; String loginname = "admin"; IJWTinfo login = controller.login(loginname, password); log.debug("**********************【id:{},loginname:{},name:{}】******************",login.getId(),login.getUniqueName(),login.getName() ); }