diff --git a/src/main/java/com/glxp/api/controller/auth/LoginController.java b/src/main/java/com/glxp/api/controller/auth/LoginController.java index d96233dc..968534f1 100644 --- a/src/main/java/com/glxp/api/controller/auth/LoginController.java +++ b/src/main/java/com/glxp/api/controller/auth/LoginController.java @@ -27,10 +27,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -308,4 +305,44 @@ public class LoginController extends BaseController { return ResultVOUtils.error(ResultEnum.DATA_CHANGE); } + /** + * 平台验证 + * + * @return + */ + @ResponseBody + @PostMapping(value = "/verify") + public BaseResponse verify(@RequestBody Map params, + HttpServletRequest request) { + AuthAdmin authAdmin; + authAdmin = authAdminService.findByUserName(params.get("username").toString()); + if (authAdmin == null) { + throw new JsonException(ResultEnum.DATA_NOT, "用户名或密码错误"); + } + + + if (!PasswordUtils.authAdminPwd(params.get("password").toString()).equals(authAdmin.getPassWord())) { + throw new JsonException(ResultEnum.DATA_NOT, "用户名或密码错误"); + } + AuthLicense authLicense = new AuthLicense(); + if (params.get("appid") != null) { + authLicense = authLicenseDao.get(params.get("appid").toString()); + } else { + String appid = AppUtils.getAppid(); + authLicense.setId(appid); + authLicense.setAppid(appid); + authLicense.setApiKey(appid); + if (params.get("name") != null) + authLicense.setName(params.get("name").toString()); + authLicense.setSecretKey(AppUtils.getSecretKey(appid)); + authLicense.setCustomerId(authAdmin.getCustomerId() + ""); + CompanyEntity companyEntity = companyService.findCompany(authAdmin.getCustomerId()); + authLicense.setCompanyName(companyEntity.getCompanyName()); + authLicense.setCreateDate(new Date()); + authLicenseDao.romveByCustomerId(authAdmin.getCustomerId() + ""); + authLicenseDao.save(authLicense); + } + return ResultVOUtils.success(authLicense); + } + } diff --git a/src/main/java/com/glxp/api/util/AppUtils.java b/src/main/java/com/glxp/api/util/AppUtils.java new file mode 100644 index 00000000..79b5c30f --- /dev/null +++ b/src/main/java/com/glxp/api/util/AppUtils.java @@ -0,0 +1,63 @@ +package com.glxp.api.util; + +import lombok.extern.slf4j.Slf4j; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Arrays; +import java.util.UUID; + +@Slf4j +public class AppUtils { + //生成secret_key + private final static String SALT = "1qazxsw2"; + private static final String ALGORITH_NAME = "sha-512"; + private static final int HASH_ITERATIONS = 2; + private final static String[] CHARS = new String[]{"a", "b", "c", "d", "e", "f", + "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", + "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", + "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", + "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", + "t", "u", "v", "w", "x", "y", "z"}; + + public static String getAppid() { + StringBuffer shortBuffer = new StringBuffer(); + String uuid = UUID.randomUUID().toString().replace("-", ""); + for (int i = 0; i < 8; i++) { + String str = uuid.substring(i * 4, i * 4 + 4); + int x = Integer.parseInt(str, 16); + shortBuffer.append(CHARS[x % 0x3E]); + } + return shortBuffer.toString(); + } + + public static String getSecretKey(String appid) { + try { + String[] array = new String[]{appid, SALT}; + StringBuilder sb = new StringBuilder(); + + Arrays.sort(array); + for (String s : array) { + sb.append(s); + } + String str = sb.toString(); + MessageDigest md = MessageDigest.getInstance("SHA-1"); + md.update(str.getBytes()); + byte[] digest = md.digest(); + + StringBuilder hexstr = new StringBuilder(); + String shaHex = ""; + for (byte b : digest) { + shaHex = Integer.toHexString(b & 0xFF); + if (shaHex.length() < 2) { + hexstr.append(0); + } + hexstr.append(shaHex); + } + return hexstr.toString(); + } catch (NoSuchAlgorithmException e) { + log.error(e.getMessage(), e); + throw new RuntimeException(); + } + } +} \ No newline at end of file