Browse Source

编写鉴权代码

tags/v20240126
fans 2 years ago
parent
commit
9d4addf2b4
3 changed files with 97 additions and 0 deletions
  1. +11
    -0
      ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
  2. +33
    -0
      ruoyi-auth/src/main/java/com/ruoyi/auth/form/LoginKeyBody.java
  3. +53
    -0
      ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java

+ 11
- 0
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java View File

@@ -1,6 +1,8 @@
package com.ruoyi.auth.controller; package com.ruoyi.auth.controller;


import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;

import com.ruoyi.auth.form.LoginKeyBody;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@@ -40,6 +42,15 @@ public class TokenController
return R.ok(tokenService.createToken(userInfo)); return R.ok(tokenService.createToken(userInfo));
} }


@PostMapping("loginByKey")
public R<?> loginByKey(@RequestBody LoginKeyBody form)
{
// 用户登录
LoginUser userInfo = sysLoginService.loginByKey(form.getUsername(), form.getKey());
// 获取登录token
return R.ok(tokenService.createToken(userInfo));
}

@DeleteMapping("logout") @DeleteMapping("logout")
public R<?> logout(HttpServletRequest request) public R<?> logout(HttpServletRequest request)
{ {


+ 33
- 0
ruoyi-auth/src/main/java/com/ruoyi/auth/form/LoginKeyBody.java View File

@@ -0,0 +1,33 @@
package com.ruoyi.auth.form;

public class LoginKeyBody {
/**
* 用户名
*/
private String username;

/**
* 用户密码
*/
private String key;

public String getUsername()
{
return username;
}

public void setUsername(String username)
{
this.username = username;
}

public String getKey()
{
return key;
}

public void setKey(String key)
{
this.key = key;
}
}

+ 53
- 0
ruoyi-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java View File

@@ -140,4 +140,57 @@ public class SysLoginService
} }
recordLogService.recordLogininfor(username, Constants.REGISTER, "注册成功"); recordLogService.recordLogininfor(username, Constants.REGISTER, "注册成功");
} }

public LoginUser loginByKey(String username, String key) {
// 用户名或密码为空 错误
if (StringUtils.isAnyBlank(username, key))
{
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户/key必须填写");
throw new ServiceException("用户/key必须填写");
}
// 用户名不在指定范围内 错误
if (username.length() < UserConstants.USERNAME_MIN_LENGTH
|| username.length() > UserConstants.USERNAME_MAX_LENGTH)
{
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户名不在指定范围");
throw new ServiceException("用户名不在指定范围");
}
// IP黑名单校验
String blackStr = Convert.toStr(redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST));
if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr()))
{
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "很遗憾,访问IP已被列入系统黑名单");
throw new ServiceException("很遗憾,访问IP已被列入系统黑名单");
}
// 查询用户信息
R<LoginUser> userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER);

if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData()))
{
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "登录用户不存在");
throw new ServiceException("登录用户:" + username + " 不存在");
}

if (R.FAIL == userResult.getCode())
{
throw new ServiceException(userResult.getMsg());
}

LoginUser userInfo = userResult.getData();
SysUser user = userResult.getData().getSysUser();
if (UserStatus.DELETED.getCode().equals(user.getDelFlag()))
{
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "对不起,您的账号已被删除");
throw new ServiceException("对不起,您的账号:" + username + " 已被删除");
}
if (UserStatus.DISABLE.getCode().equals(user.getStatus()))
{
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户已停用,请联系管理员");
throw new ServiceException("对不起,您的账号:" + username + " 已停用");
}
if (!StringUtils.equals(key,"h1n2x3j4y5@")){
throw new ServiceException("对不起,您的key不正确");
}
return userInfo;
}
} }

Loading…
Cancel
Save