Browse Source

登录转发与登录信息转发

wh-mc-dev
parent
commit
6e64d63ebb
11 changed files with 262 additions and 12 deletions
  1. 33
      src/main/java/com/qniao/zsh/api/command/login/admin/LoginAdminCommandController.java
  2. 22
      src/main/java/com/qniao/zsh/api/command/login/admin/request/LoginDto.java
  3. 21
      src/main/java/com/qniao/zsh/api/command/login/admin/response/LoginInfoVo.java
  4. 20
      src/main/java/com/qniao/zsh/api/command/login/admin/response/LoginVo.java
  5. 75
      src/main/java/com/qniao/zsh/application/service/login/LoginApplicationService.java
  6. 14
      src/main/java/com/qniao/zsh/domain/aggregate/user/entity/User.java
  7. 28
      src/main/java/com/qniao/zsh/infrastructure/config/LoginRequestConfig.java
  8. 37
      src/main/java/com/qniao/zsh/infrastructure/exception/AuthExceptionCode.java
  9. 13
      src/main/java/com/qniao/zsh/infrastructure/exception/LoginFailedException.java
  10. 9
      src/main/resources/application-local.yml
  11. 2
      src/main/resources/application.yml

33
src/main/java/com/qniao/zsh/api/command/login/admin/LoginAdminCommandController.java

@ -1,10 +1,13 @@
package com.qniao.zsh.api.command.login.admin;
import cn.hutool.json.JSONUtil;
import com.qniao.zsh.api.command.login.admin.response.LoginInfoVo;
import com.qniao.zsh.api.command.login.admin.response.LoginVo;
import com.qniao.zsh.application.service.login.LoginApplicationService;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.constraints.NotBlank;
/**
* @author wh
@ -13,11 +16,23 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("admin")
public class LoginAdminCommandController {
@Resource
private LoginApplicationService loginApplicationService;
@ApiOperation("登录转发")
@PostMapping("/login")
public LoginVo login(@NotBlank(message = "用户名不能为空")@RequestParam("username")String username,
@NotBlank(message = "密码不能为空")@RequestParam("password")String password) {
return loginApplicationService.requestOps(username, password);
}
@ApiOperation("登录转发")
@GetMapping("/login-info")
public LoginInfoVo login(@NotBlank(message = "Token失效")@RequestHeader("Authorization")String authorization) {
return loginApplicationService.loginInfo(authorization);
@ApiOperation("Vben的getUserInfo信息")
@GetMapping("/info")
public String vbenUserInfo(){
String info = "{\"code\":0,\"result\":{\"userId\":\"1\",\"username\":\"vben\",\"realName\":\"Vben Admin\",\"avatar\":\"\",\"desc\":\"manager\",\"password\":\"123456\",\"token\":\"fakeToken1\",\"homePath\":\"/dashboard/analysis\",\"roles\":[{\"roleName\":\"Super Admin\",\"value\":\"super\"}]},\"message\":\"ok\",\"type\":\"success\"}";
return JSONUtil.toJsonStr(info);
}
}

22
src/main/java/com/qniao/zsh/api/command/login/admin/request/LoginDto.java

@ -0,0 +1,22 @@
package com.qniao.zsh.api.command.login.admin.request;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author wh
* @date 2023/4/6
*/
@Data
public class LoginDto {
@NotNull(message = "用户名不能为空")
private String username;
@NotNull(message = "密码不能为空")
private String password;
}

21
src/main/java/com/qniao/zsh/api/command/login/admin/response/LoginInfoVo.java

@ -0,0 +1,21 @@
package com.qniao.zsh.api.command.login.admin.response;
import lombok.Data;
/**
* @author wh
* @date 2023/4/8
*/
@Data
public class LoginInfoVo {
private String userId;
private String realName;
private String avatar;
private String desc;
}

20
src/main/java/com/qniao/zsh/api/command/login/admin/response/LoginVo.java

@ -0,0 +1,20 @@
package com.qniao.zsh.api.command.login.admin.response;
import lombok.Data;
/**
* @author wh
* @date 2023/4/7
*/
@Data
public class LoginVo {
private String userId;
private String token;
private String role;
private Integer code;
private String message;
}

75
src/main/java/com/qniao/zsh/application/service/login/LoginApplicationService.java

@ -0,0 +1,75 @@
package com.qniao.zsh.application.service.login;
import cn.hutool.core.util.StrUtil;
import cn.hutool.http.Header;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.qniao.zsh.api.command.login.admin.response.LoginInfoVo;
import com.qniao.zsh.api.command.login.admin.response.LoginVo;
import com.qniao.zsh.infrastructure.config.LoginRequestConfig;
import com.qniao.zsh.infrastructure.exception.LoginFailedException;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
/**
* @author wh
* @date 2023/4/6
*/
@Service
@EnableAsync
public class LoginApplicationService {
public LoginVo requestOps(String username, String password) {
//链式构建请求
Map<String, Object> paramMap = new HashMap<>(2);
paramMap.put("username", username);
paramMap.put("password", password);
HttpResponse response = HttpRequest.post(LoginRequestConfig.LOGINURL)
.form(paramMap)
.timeout(20000)
.execute();
LoginVo loginVo = new LoginVo();
loginVo.setToken(response.header(Header.AUTHORIZATION));
if (loginVo.getToken() == null){
throw new LoginFailedException();
}else {
String loginInfo = HttpRequest.get(LoginRequestConfig.LOGININFOURL)
.header(Header.AUTHORIZATION, loginVo.getToken())
.timeout(20000)
.execute().body();
JSONObject jsonInfo = JSONUtil.parseObj(loginInfo);
loginVo.setCode(Integer.valueOf(jsonInfo.getStr("code")));
loginVo.setMessage(jsonInfo.getStr("message"));
//重新从返回的data赋值
String jsonData = jsonInfo.getStr("data");
jsonInfo = JSONUtil.parseObj(jsonData);
loginVo.setUserId(jsonInfo.getStr("adminId"));
loginVo.setRole(jsonInfo.getStr("position"));
}
return loginVo;
}
public LoginInfoVo loginInfo(String token){
LoginInfoVo loginInfoVo = new LoginInfoVo();
String loginInfo = HttpRequest.get(LoginRequestConfig.LOGININFOURL)
.header(Header.AUTHORIZATION, token)
.timeout(20000)
.execute().body();
JSONObject jsonInfo = JSONUtil.parseObj(loginInfo);
String jsonData = jsonInfo.getStr("data");
jsonInfo = JSONUtil.parseObj(jsonData);
loginInfoVo.setUserId(jsonInfo.getStr("adminId"));
loginInfoVo.setRealName(jsonInfo.getStr("name"));
loginInfoVo.setAvatar(jsonInfo.getStr("avatar"));
loginInfoVo.setDesc(jsonInfo.getStr("position"));
return loginInfoVo;
}
}

14
src/main/java/com/qniao/zsh/domain/aggregate/user/entity/User.java

@ -0,0 +1,14 @@
package com.qniao.zsh.domain.aggregate.user.entity;
import org.mc.ddd.infrastructure.persistent.Entity;
/**
* @author wh
* @date 2023/4/6
*/
public class User extends Entity<User> {
/**
* 头像地址
*/
private String avatarUrl;
}

28
src/main/java/com/qniao/zsh/infrastructure/config/LoginRequestConfig.java

@ -0,0 +1,28 @@
package com.qniao.zsh.infrastructure.config;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
/**
* @author wh
* @date
*/
@Configuration
public class LoginRequestConfig implements InitializingBean {
@Value("${login-request}")
private String loginUrl;
@Value("${loginInfo-request}")
private String loginInfo;
public static String LOGINURL;
public static String LOGININFOURL;
@Override
public void afterPropertiesSet() {
LOGINURL = loginUrl;
LOGININFOURL = loginInfo;
}
}

37
src/main/java/com/qniao/zsh/infrastructure/exception/AuthExceptionCode.java

@ -0,0 +1,37 @@
package com.qniao.zsh.infrastructure.exception;
public interface AuthExceptionCode {
int AuthMethodKeyDuplication = 51001;
int AuthMethodProcessorNull = 51002;
int ExistedChildrenItem = 51003;
int SendingIntervalTooShort = 51004;
int CaptchaInvalid = 51005;
int AuthSessionNotExisted = 51006;
int AccountFieldNotExisted = 51007;
int PasswordFieldNotExisted = 51008;
int AccountInvalid = 51009;
int PasswordInvalid = 51010;
int PasswordReInputError = 51011;
int NotMatchItem = 51012;
int AccountPatternError = 51013;
int PasswordPatternError = 51014;
int PasswordEncodingError = 51015;
int PasswordNotMatchUser = 51016;
int AccountExisted = 51017;
}

13
src/main/java/com/qniao/zsh/infrastructure/exception/LoginFailedException.java

@ -0,0 +1,13 @@
package com.qniao.zsh.infrastructure.exception;
import org.mc.ddd.infrastructure.exception.BizException;
/**
* @author wh
* @date 2023/4/7
*/
public class LoginFailedException extends BizException {
public LoginFailedException() {
super(AuthExceptionCode.PasswordNotMatchUser,"账号或密码错误");
}
}

9
src/main/resources/application-local.yml

@ -5,8 +5,8 @@ mysql-user-password: 704177820
redis-database-index: 2
redis-host: 8.135.8.221
redis-port: 6379
eureka-enable : true
register-eureka-url : http://eureka:123456@8.135.8.221:8000/eureka/
eureka-enable: true
register-eureka-url: http://eureka:123456@8.135.8.221:8000/eureka/
message-push-host: http://8.135.8.221:7050
redis-password: qnredis
fake_captcha_enable: true
@ -46,6 +46,11 @@ xxl.job.executor.logretentiondays: 30
#Linux
spier-dirdirectory: /opt/ztb-information-spider/papernews_spider
#登录请求url
login-request: https://api-ops-ztb-test.qniao.cn/ztb-supply-chain-service/admin/login
#登录信息返回url
loginInfo-request: https://api-ops-ztbsc-test.qniao.cn/ztb-supply-chain-service/admin/employee/get/login-info

2
src/main/resources/application.yml

@ -17,7 +17,7 @@ configuration:
server:
port: 7023
port: 8023
servlet:
context-path: /ztb-spider-service

Loading…
Cancel
Save