Commit cf7632b3 authored by zhangc's avatar zhangc

修复认证中已知问题

parent 29646613
...@@ -23,6 +23,7 @@ public class WebAppConfigurer extends WebMvcConfigurerAdapter { ...@@ -23,6 +23,7 @@ public class WebAppConfigurer extends WebMvcConfigurerAdapter {
// 可添加多个,这里选择拦截所有请求地址,进入后判断是否有加注解即可 // 可添加多个,这里选择拦截所有请求地址,进入后判断是否有加注解即可
registry.addInterceptor(getAccessLimitInterceptor()) registry.addInterceptor(getAccessLimitInterceptor())
.addPathPatterns("/api/organization/**") .addPathPatterns("/api/organization/**")
.excludePathPatterns("api/producer/**")
.excludePathPatterns( .excludePathPatterns(
"/**/*.html", //html静态资源 "/**/*.html", //html静态资源
"/**/*.js", //js静态资源 "/**/*.js", //js静态资源
......
...@@ -48,7 +48,7 @@ public class AuthController { ...@@ -48,7 +48,7 @@ public class AuthController {
* @Author: Mr.zhang * @Author: Mr.zhang
* @Date: 2020-12-26 * @Date: 2020-12-26
*/ */
@ApiOperation("商城用户API认证") @ApiOperation("DMP用户API认证")
@PostMapping(value = "dmp-auth-api") @PostMapping(value = "dmp-auth-api")
public Mono<Result> authDmpUserApi(@RequestBody @Valid AuthDmpUserApiReq req) { public Mono<Result> authDmpUserApi(@RequestBody @Valid AuthDmpUserApiReq req) {
return Mono.fromSupplier(() -> authService.addDmpUserApiAuth(req)); return Mono.fromSupplier(() -> authService.addDmpUserApiAuth(req));
......
...@@ -7,7 +7,6 @@ import com.jz.dm.models.req.organizationManage.OrganizationManageListQueryReq; ...@@ -7,7 +7,6 @@ import com.jz.dm.models.req.organizationManage.OrganizationManageListQueryReq;
import com.jz.dm.models.req.organizationManage.OrganizationManageUpdateReq; import com.jz.dm.models.req.organizationManage.OrganizationManageUpdateReq;
import com.jz.dm.service.OrganizationManageService; import com.jz.dm.service.OrganizationManageService;
import com.jz.dm.web.annotation.AccessLimit; import com.jz.dm.web.annotation.AccessLimit;
import com.jz.dm.web.annotation.ApiLogAspect;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -53,7 +52,7 @@ public class OrganizationManageController { ...@@ -53,7 +52,7 @@ public class OrganizationManageController {
@ApiOperation("组织详情查询") @ApiOperation("组织详情查询")
@PostMapping(value = "/getOrgDetail") @PostMapping(value = "/getOrgDetail")
@AccessLimit(limit = 1000,sec = 1) @AccessLimit(limit = 1000,sec = 1)
@ApiLogAspect //@ApiLogAspect
public Mono<Result> getOrganizationDetail(@RequestBody @Valid OrganizationManageDetailQueryReq req) { public Mono<Result> getOrganizationDetail(@RequestBody @Valid OrganizationManageDetailQueryReq req) {
return Mono.fromSupplier(() -> organizationManageService.getOrganizationDetail(req)); return Mono.fromSupplier(() -> organizationManageService.getOrganizationDetail(req));
} }
......
...@@ -19,7 +19,7 @@ public interface ApiAuthMapper extends BaseMapper<ApiAuth> { ...@@ -19,7 +19,7 @@ public interface ApiAuthMapper extends BaseMapper<ApiAuth> {
* @param req * @param req
* @return * @return
*/ */
AuthInfoDto selectAuthDetail(AuthDetailInfoReq req); AuthInfoDto selectAuthDetail(@Param("req") AuthDetailInfoReq req);
/** /**
* 分页查询认证列表 * 分页查询认证列表
......
...@@ -56,11 +56,11 @@ public class ApiAuth extends BaseObject implements Serializable { ...@@ -56,11 +56,11 @@ public class ApiAuth extends BaseObject implements Serializable {
@TableField("salt") @TableField("salt")
private String salt; private String salt;
/** ///**
* 组织id //* 组织id
*/ //*/
@TableField("org_id") //@TableField("org_id")
private Long orgId; //private Long orgId;
/** /**
* 授权方式:1.按次调用 2.按月调用 3.按季调用 4.按年调用 * 授权方式:1.按次调用 2.按月调用 3.按季调用 4.按年调用
......
...@@ -5,7 +5,6 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -5,7 +5,6 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* @author ZC * @author ZC
...@@ -25,12 +24,15 @@ public class AuthInfoDto implements Serializable { ...@@ -25,12 +24,15 @@ public class AuthInfoDto implements Serializable {
@ApiModelProperty(value = "授权组织id") @ApiModelProperty(value = "授权组织id")
private Long apiOrgId; private Long apiOrgId;
@ApiModelProperty(value = "api应用id") /* @ApiModelProperty(value = "api应用id")
private Long apiInterfaceId; private Long apiInterfaceId;*/
@ApiModelProperty(value = "授权组织名称") @ApiModelProperty(value = "授权组织名称")
private String orgName; private String orgName;
@ApiModelProperty(value = "授权组织名称")
private String authCode;
@ApiModelProperty(value = "apiKey") @ApiModelProperty(value = "apiKey")
private String apiKey; private String apiKey;
...@@ -38,10 +40,10 @@ public class AuthInfoDto implements Serializable { ...@@ -38,10 +40,10 @@ public class AuthInfoDto implements Serializable {
private String authMode; private String authMode;
@ApiModelProperty(value = "开始时间") @ApiModelProperty(value = "开始时间")
private Date validStartTime; private String validStartTime;
@ApiModelProperty(value = "结束时间") @ApiModelProperty(value = "结束时间")
private Date validEndTime; private String validEndTime;
@ApiModelProperty(value = "状态(1-正常 2-作废") @ApiModelProperty(value = "状态(1-正常 2-作废")
private String status; private String status;
...@@ -50,7 +52,7 @@ public class AuthInfoDto implements Serializable { ...@@ -50,7 +52,7 @@ public class AuthInfoDto implements Serializable {
private String remark; private String remark;
@ApiModelProperty(value = "创建时间") @ApiModelProperty(value = "创建时间")
private Date createTime; private String createDate;
@ApiModelProperty(value = "创建用户") @ApiModelProperty(value = "创建用户")
private String createUser; private String createUser;
......
package com.jz.dm.models.req.auth; package com.jz.dm.models.req.auth;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jz.dm.common.enums.auth.AuthModeEnum; import com.jz.dm.common.enums.auth.AuthModeEnum;
import com.jz.dm.common.enums.auth.AuthTypeEnum; import com.jz.dm.common.enums.auth.AuthTypeEnum;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* @author ZC * @author ZC
...@@ -43,9 +46,14 @@ public class AuthDmpUserApiReq implements Serializable { ...@@ -43,9 +46,14 @@ public class AuthDmpUserApiReq implements Serializable {
private AuthModeEnum authMode; private AuthModeEnum authMode;
@ApiModelProperty(value = "开始时间",required = false) @ApiModelProperty(value = "开始时间",required = false)
private String validStartTime; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date validStartTime;
@ApiModelProperty(value = "结束时间",required = false) @ApiModelProperty(value = "结束时间",required = false)
private String validEndTime; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date validEndTime;
@ApiModelProperty(value = "备注",required = false) @ApiModelProperty(value = "备注",required = false)
private String remark; private String remark;
......
package com.jz.dm.models.req.auth; package com.jz.dm.models.req.auth;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jz.dm.common.enums.auth.AuthModeEnum; import com.jz.dm.common.enums.auth.AuthModeEnum;
import com.jz.dm.common.enums.auth.AuthTypeEnum; import com.jz.dm.common.enums.auth.AuthTypeEnum;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
/** /**
* @author ZC * @author ZC
...@@ -46,9 +49,14 @@ public class AuthMallUserApiReq implements Serializable { ...@@ -46,9 +49,14 @@ public class AuthMallUserApiReq implements Serializable {
private AuthModeEnum authMode; private AuthModeEnum authMode;
@ApiModelProperty(value = "开始时间",required = false) @ApiModelProperty(value = "开始时间",required = false)
private String validStartTime; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date validStartTime;
@ApiModelProperty(value = "结束时间",required = false) @ApiModelProperty(value = "结束时间",required = false)
private String validEndTime; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date validEndTime;
@ApiModelProperty(value = "备注",required = false) @ApiModelProperty(value = "备注",required = false)
private String remark; private String remark;
......
...@@ -23,8 +23,8 @@ public class SaltResetReq implements Serializable { ...@@ -23,8 +23,8 @@ public class SaltResetReq implements Serializable {
@NotNull(message = "id不能为空") @NotNull(message = "id不能为空")
private Long id; private Long id;
@ApiModelProperty(value = "盐值",required = true) /*@ApiModelProperty(value = "盐值",required = true)
@NotNull(message = "盐值不能为空") @NotNull(message = "盐值不能为空")
private String salt; private String salt;*/
} }
...@@ -24,9 +24,9 @@ public class MakeDataBankApiReq implements Serializable { ...@@ -24,9 +24,9 @@ public class MakeDataBankApiReq implements Serializable {
@NotNull(message = "api类型不能为空") @NotNull(message = "api类型不能为空")
public String apiType; public String apiType;
@ApiModelProperty(value = "apiId 等价于apiKey",required = true) @ApiModelProperty(value = "apiKey 等价于apiId",required = true)
@NotNull(message = "apiId不能为空") @NotNull(message = "apiKey不能为空")
public String apiId; public String apiKey;
@ApiModelProperty(value = "接口描述",required = false) @ApiModelProperty(value = "接口描述",required = false)
public String apiDesc; public String apiDesc;
...@@ -36,7 +36,7 @@ public class MakeDataBankApiReq implements Serializable { ...@@ -36,7 +36,7 @@ public class MakeDataBankApiReq implements Serializable {
@ApiModelProperty(value = "传输方式(1为HTTPS,2为HTTP)",required = true) @ApiModelProperty(value = "传输方式(1为HTTPS,2为HTTP)",required = true)
@NotNull(message = "传输方式不能为空") @NotNull(message = "传输方式不能为空")
public String transMode; public String apiProtocl;
@ApiModelProperty(value = "加密方式0 无,1:MD5 2:RSA",required = true) @ApiModelProperty(value = "加密方式0 无,1:MD5 2:RSA",required = true)
@NotNull(message = "加密方式不能为空") @NotNull(message = "加密方式不能为空")
...@@ -66,4 +66,8 @@ public class MakeDataBankApiReq implements Serializable { ...@@ -66,4 +66,8 @@ public class MakeDataBankApiReq implements Serializable {
@ApiModelProperty(value = "api样例",required = false) @ApiModelProperty(value = "api样例",required = false)
public String apiExample; public String apiExample;
@ApiModelProperty(value = "文件id",required = false)
//@NotNull(message = "文件id不能为空")
public Long fileId;
} }
...@@ -10,14 +10,14 @@ import java.io.Serializable; ...@@ -10,14 +10,14 @@ import java.io.Serializable;
* @author ZC * @author ZC
* @PACKAGE_NAME: com.jz.dm.models.resp * @PACKAGE_NAME: com.jz.dm.models.resp
* @PROJECT_NAME: jz-dm-parent * @PROJECT_NAME: jz-dm-parent
* @NAME: AuthMallUserResponse * @NAME: AuthUserResponse
* @DATE: 2020-12-30/19:35 * @DATE: 2020-12-30/19:35
* @DAY_NAME_SHORT: 周三 * @DAY_NAME_SHORT: 周三
* @Description: * @Description:
**/ **/
@Data @Data
@ApiModel @ApiModel
public class AuthMallUserResponse implements Serializable { public class AuthUserResponse implements Serializable {
@ApiModelProperty(value ="授权码") @ApiModelProperty(value ="授权码")
public String authCode; public String authCode;
......
...@@ -18,12 +18,14 @@ import com.jz.dm.models.domian.ApiInterface; ...@@ -18,12 +18,14 @@ import com.jz.dm.models.domian.ApiInterface;
import com.jz.dm.models.domian.ApiOrg; import com.jz.dm.models.domian.ApiOrg;
import com.jz.dm.models.dto.AuthInfoDto; import com.jz.dm.models.dto.AuthInfoDto;
import com.jz.dm.models.req.auth.*; import com.jz.dm.models.req.auth.*;
import com.jz.dm.models.resp.AuthMallUserResponse; import com.jz.dm.models.resp.AuthUserResponse;
import com.jz.dm.service.AuthService; import com.jz.dm.service.AuthService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Date; import java.util.Date;
...@@ -59,7 +61,7 @@ public class AuthServiceImpl implements AuthService { ...@@ -59,7 +61,7 @@ public class AuthServiceImpl implements AuthService {
public Result getAuthListInfo(AuthListInfoReq req) { public Result getAuthListInfo(AuthListInfoReq req) {
IPage<AuthInfoDto> page = new Page<>(req.getPageNum(), req.getPageSize()); IPage<AuthInfoDto> page = new Page<>(req.getPageNum(), req.getPageSize());
QueryWrapper<AuthInfoDto> query = new QueryWrapper<>(); QueryWrapper<AuthInfoDto> query = new QueryWrapper<>();
query.orderByDesc("create_date"); query.orderByDesc("au.create_date");
IPage<AuthInfoDto> listSelectApiAuth = apiAuthMapper.listSelectApiAuth(page, query); IPage<AuthInfoDto> listSelectApiAuth = apiAuthMapper.listSelectApiAuth(page, query);
return Result.of_success(listSelectApiAuth); return Result.of_success(listSelectApiAuth);
} }
...@@ -82,7 +84,9 @@ public class AuthServiceImpl implements AuthService { ...@@ -82,7 +84,9 @@ public class AuthServiceImpl implements AuthService {
* @return * @return
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRES_NEW)
public Result addDmpUserApiAuth(AuthDmpUserApiReq req) { public Result addDmpUserApiAuth(AuthDmpUserApiReq req) {
AuthUserResponse response = new AuthUserResponse();
ApiInterface apiInterface = getInterface(req.getApiKey()); ApiInterface apiInterface = getInterface(req.getApiKey());
if (null == apiInterface) { if (null == apiInterface) {
return Result.of_error("api授权信息不存在!"); return Result.of_error("api授权信息不存在!");
...@@ -93,12 +97,12 @@ public class AuthServiceImpl implements AuthService { ...@@ -93,12 +97,12 @@ public class AuthServiceImpl implements AuthService {
} }
//授权验证 //授权验证
if (StringUtils.isNotBlank(req.getAuthType().name()) && if (StringUtils.isNotBlank(req.getAuthType().name()) &&
!AuthTypeEnum.DMP_AUTH.name().equals(req.getAuthType())) { !AuthTypeEnum.DMP_AUTH.name().equals(req.getAuthType().name())) {
return Result.of_error("授权类型错误!"); return Result.of_error("授权类型错误!");
} }
//认证类型 //认证类型
if (StringUtils.isNotBlank(req.getAuthMode().name()) && AuthModeEnum.PERMANENT_TIME_MODE.name().equals(req.getAuthMode())) { if (StringUtils.isNotBlank(req.getAuthMode().name()) && AuthModeEnum.PERMANENT_TIME_MODE.name().equals(req.getAuthMode().name())) {
if (StringUtils.isBlank(req.getValidStartTime()) || StringUtils.isBlank(req.getValidEndTime())) { if (null == req.getValidStartTime() || null == req.getValidEndTime()) {
return Result.of_error("开始或结束时间不能为空!"); return Result.of_error("开始或结束时间不能为空!");
} }
} }
...@@ -108,22 +112,26 @@ public class AuthServiceImpl implements AuthService { ...@@ -108,22 +112,26 @@ public class AuthServiceImpl implements AuthService {
} }
String authCode = ""; String authCode = "";
ApiAuth apiAuth = new ApiAuth(); ApiAuth apiAuth = new ApiAuth();
apiAuth.setAuthType(req.getAuthType().name());
apiAuth.setAuthMode(req.getAuthMode().name());
apiAuth.setApiInterfaceId(apiInterface.getId());
apiAuth.setApiOrgId(apiOrg.getId());
BeanUtils.copyProperties(req, apiAuth); BeanUtils.copyProperties(req, apiAuth);
apiAuth.setApiInterfaceId(apiInterface.getId()); apiAuth.setApiInterfaceId(apiInterface.getId());
if (StringUtils.isNotBlank(req.getOrgType()) //内部组织 if (StringUtils.isNotBlank(req.getOrgType()) //内部组织
&& Constants.AUTH_INT.equalsIgnoreCase(req.getOrgType())) { && Constants.AUTH_INT.equalsIgnoreCase(req.getOrgType())) {
authCode = getAuthCode(apiOrg.getOrgCode(),"",Constants.AUTH_INT); authCode = getAuthCode(apiOrg.getOrgCode(),"",Constants.AUTH_INT);
} }
/*else if (StringUtils.isNotBlank(req.getOrgType()) //外部组织
&& Constants.AUTH_OUT.equalsIgnoreCase(req.getOrgType())) {
authCode = getAuthCode("", req.getUserId(),Constants.AUTH_OUT);
}*/
apiAuth.setAuthCode(authCode);//授权码 apiAuth.setAuthCode(authCode);//授权码
String salt = RandomUtil.getStringRandom(8); String salt = RandomUtil.getStringRandom(8);
apiAuth.setSalt(salt);//盐值 apiAuth.setSalt(salt);//盐值
apiAuth.setStatus("1");//授权状态 apiAuth.setStatus("1");//授权状态
apiAuth.setCreateUser("");
apiAuth.setRemark(req.getRemark());
response.setAuthCode(authCode);
response.setSalt(salt);
if (apiAuthMapper.insert(apiAuth) > 0) { if (apiAuthMapper.insert(apiAuth) > 0) {
return Result.of_success(ResultMsg.SUCCESS); return Result.of_success(ResultMsg.SUCCESS,response);
} }
return Result.of_success(ResultMsg.FAILURE); return Result.of_success(ResultMsg.FAILURE);
} }
...@@ -135,8 +143,9 @@ public class AuthServiceImpl implements AuthService { ...@@ -135,8 +143,9 @@ public class AuthServiceImpl implements AuthService {
* @return * @return
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRES_NEW)
public Result addMallUserApiAuth(AuthMallUserApiReq req) { public Result addMallUserApiAuth(AuthMallUserApiReq req) {
AuthMallUserResponse response = new AuthMallUserResponse(); AuthUserResponse response = new AuthUserResponse();
ApiInterface apiInterface = getInterface(req.getApiKey()); ApiInterface apiInterface = getInterface(req.getApiKey());
if (null == apiInterface) { if (null == apiInterface) {
return Result.of_error("api授权信息不存在!"); return Result.of_error("api授权信息不存在!");
...@@ -147,23 +156,26 @@ public class AuthServiceImpl implements AuthService { ...@@ -147,23 +156,26 @@ public class AuthServiceImpl implements AuthService {
} }
//授权验证 //授权验证
if (StringUtils.isNotBlank(req.getAuthType().name()) && if (StringUtils.isNotBlank(req.getAuthType().name()) &&
!AuthTypeEnum.DATA_BANK_AUTH.name().equals(req.getAuthType())) { !AuthTypeEnum.DATA_BANK_AUTH.name().equals(req.getAuthType().name())) {
return Result.of_error("授权类型错误!"); return Result.of_error("授权类型错误!");
} }
//认证类型 //认证类型
if (StringUtils.isNotBlank(req.getAuthMode().name()) && AuthModeEnum.RECORD_TIME_MODE.name().equals(req.getAuthMode())) { if (StringUtils.isNotBlank(req.getAuthMode().name()) && AuthModeEnum.RECORD_TIME_MODE.name().equals(req.getAuthMode().name())) {
if (StringUtils.isBlank(req.getValidStartTime()) || StringUtils.isBlank(req.getValidEndTime())) { if (null == req.getValidStartTime() || null == req.getValidEndTime()) {
return Result.of_error("开始或结束时间不能为空!"); return Result.of_error("开始或结束时间不能为空!");
} }
} }
if (StringUtils.isNotBlank(req.getAuthMode().name()) && if (StringUtils.isNotBlank(req.getAuthMode().name()) &&
AuthModeEnum.PERMANENT_TIME_MODE.name().equals(req.getAuthMode())) { AuthModeEnum.PERMANENT_TIME_MODE.name().equals(req.getAuthMode().name())) {
return Result.of_error("授权类型错误!"); return Result.of_error("授权类型错误!");
} }
String authCode = ""; String authCode = "";
ApiAuth apiAuth = new ApiAuth(); ApiAuth apiAuth = new ApiAuth();
BeanUtils.copyProperties(req, apiAuth); apiAuth.setAuthType(req.getAuthType().name());
apiAuth.setAuthMode(req.getAuthMode().name());
apiAuth.setApiInterfaceId(apiInterface.getId()); apiAuth.setApiInterfaceId(apiInterface.getId());
apiAuth.setApiOrgId(apiOrg.getId());
BeanUtils.copyProperties(req, apiAuth);
if (StringUtils.isNotBlank(req.getOrgType()) //内部组织 if (StringUtils.isNotBlank(req.getOrgType()) //内部组织
&& Constants.AUTH_INT.equalsIgnoreCase(req.getOrgType())) { && Constants.AUTH_INT.equalsIgnoreCase(req.getOrgType())) {
authCode = getAuthCode(apiOrg.getOrgCode(),"",Constants.AUTH_INT); authCode = getAuthCode(apiOrg.getOrgCode(),"",Constants.AUTH_INT);
...@@ -175,6 +187,8 @@ public class AuthServiceImpl implements AuthService { ...@@ -175,6 +187,8 @@ public class AuthServiceImpl implements AuthService {
String salt = RandomUtil.getStringRandom(8); String salt = RandomUtil.getStringRandom(8);
apiAuth.setSalt(salt);//盐值 apiAuth.setSalt(salt);//盐值
apiAuth.setStatus("1");//授权状态 apiAuth.setStatus("1");//授权状态
apiAuth.setCreateUser("");
apiAuth.setRemark(req.getRemark());
response.setAuthCode(authCode); response.setAuthCode(authCode);
response.setSalt(salt); response.setSalt(salt);
if (apiAuthMapper.insert(apiAuth) > 0) { if (apiAuthMapper.insert(apiAuth) > 0) {
...@@ -222,26 +236,27 @@ public class AuthServiceImpl implements AuthService { ...@@ -222,26 +236,27 @@ public class AuthServiceImpl implements AuthService {
*/ */
@Override @Override
public Result updateSaltInfo(SaltResetReq req) { public Result updateSaltInfo(SaltResetReq req) {
AuthUserResponse response = new AuthUserResponse();
ApiAuth apiAuth = apiAuthMapper.selectById(req.getId()); ApiAuth apiAuth = apiAuthMapper.selectById(req.getId());
if (null == apiAuth) { if (null == apiAuth) {
return Result.of_error("认证用户不存在"); return Result.of_error("认证用户不存在");
} }
if (StringUtils.isNotBlank(req.getSalt())) { String salt = RandomUtil.getStringRandom(8);
UpdateWrapper<ApiAuth> update = new UpdateWrapper<>(); UpdateWrapper<ApiAuth> update = new UpdateWrapper<>();
update.set("salt", req.getSalt()); update.set("salt", salt);
update.set("create_time", new Date()); update.set("create_time", new Date());
update.set("create_user", ""); update.set("create_user", "");
update.eq("id", req.getId()); update.eq("id", req.getId());
if (apiAuthMapper.update(null, update) > 0) { if (apiAuthMapper.update(null, update) > 0) {
return Result.of_success(ResultMsg.UPDATE_SUCCESS); response.setSalt(salt);
return Result.of_success(ResultMsg.UPDATE_SUCCESS,response);
} }
}
return Result.of_success(ResultMsg.UPDATE_FAIL); return Result.of_success(ResultMsg.UPDATE_FAIL);
} }
private ApiInterface getInterface(String apiKey) { private ApiInterface getInterface(String apiKey) {
QueryWrapper<ApiInterface> queryInface = new QueryWrapper<>(); QueryWrapper<ApiInterface> queryInface = new QueryWrapper<>();
queryInface.last("where is_deleted=0 and api_key =" + apiKey + ""); queryInface.last("where is_deleted=0 and api_key ='" + apiKey + "'");
ApiInterface apiInterface = apiInterfaceMapper.selectOne(queryInface); ApiInterface apiInterface = apiInterfaceMapper.selectOne(queryInface);
if (null != apiInterface) { if (null != apiInterface) {
return apiInterface; return apiInterface;
......
...@@ -4,10 +4,10 @@ import com.alibaba.fastjson.JSONArray; ...@@ -4,10 +4,10 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.exceptions.ApiException;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jz.common.bean.SysUserDto; import com.jz.common.bean.SysUserDto;
import com.jz.common.constant.ResultMsg; import com.jz.common.constant.ResultMsg;
import com.jz.common.exception.ResponseException;
import com.jz.common.utils.RedisUtils; import com.jz.common.utils.RedisUtils;
import com.jz.common.utils.Result; import com.jz.common.utils.Result;
import com.jz.dm.common.constant.TagConstants; import com.jz.dm.common.constant.TagConstants;
...@@ -123,14 +123,17 @@ public class ProducerServiceImpl implements ProducerService { ...@@ -123,14 +123,17 @@ public class ProducerServiceImpl implements ProducerService {
&& "2".equals(req.getApiType())){//数据银行制作API && "2".equals(req.getApiType())){//数据银行制作API
ApiInterface anInterface = new ApiInterface(); ApiInterface anInterface = new ApiInterface();
anInterface.setCreateUser(""); anInterface.setCreateUser("");
anInterface.setStatus("2");//发布
anInterface.setSignType(req.getType());//加密类型
BeanUtils.copyProperties(req,anInterface); BeanUtils.copyProperties(req,anInterface);
int resIn = apiInterfaceMapper.insert(anInterface); int resIn = apiInterfaceMapper.insert(anInterface);
ApiInterfaceCustom interfaceCustom = new ApiInterfaceCustom(); ApiInterfaceCustom interfaceCustom = new ApiInterfaceCustom();
interfaceCustom.setCreateUser(""); interfaceCustom.setCreateUser("");
interfaceCustom.setApiInterfaceId(anInterface.getId());
BeanUtils.copyProperties(req,interfaceCustom); BeanUtils.copyProperties(req,interfaceCustom);
int resOut = apiInterfaceCustomMapper.insert(interfaceCustom); int resOut = apiInterfaceCustomMapper.insert(interfaceCustom);
if (resOut == 0 || resIn < 0){ if (resOut == 0 || resIn == 0){
throw new ApiException("保存信息!"); throw ResponseException.of_error("保存信息失败!");
} }
}else if (StringUtils.isNotBlank(req.getApiType()) }else if (StringUtils.isNotBlank(req.getApiType())
&& "3".equals(req.getApiType())){//数据银行制作数据包 && "3".equals(req.getApiType())){//数据银行制作数据包
...@@ -139,10 +142,10 @@ public class ProducerServiceImpl implements ProducerService { ...@@ -139,10 +142,10 @@ public class ProducerServiceImpl implements ProducerService {
} }
ApiInterfaceReq makeBigDataApiReq = new ApiInterfaceReq(); ApiInterfaceReq makeBigDataApiReq = new ApiInterfaceReq();
makeBigDataApiReq.setApiType(req.getApiType()); makeBigDataApiReq.setApiType(req.getApiType());
makeBigDataApiReq.setApiId(req.getApiId()); makeBigDataApiReq.setApiId(req.getApiKey());
makeBigDataApiReq.setApiDesc(req.getApiDesc()); makeBigDataApiReq.setApiDesc(req.getApiDesc());
makeBigDataApiReq.setVersion(req.getVersion()); makeBigDataApiReq.setVersion(req.getVersion());
makeBigDataApiReq.setTransMode(req.getTransMode()); makeBigDataApiReq.setTransMode(req.getApiProtocl());
makeBigDataApiReq.setType(req.getType()); makeBigDataApiReq.setType(req.getType());
makeBigDataApiReq.setTargetUrl(req.getTargetUrl()); makeBigDataApiReq.setTargetUrl(req.getTargetUrl());
makeBigDataApiReq.setTimeout(req.getTimeout()); makeBigDataApiReq.setTimeout(req.getTimeout());
...@@ -237,7 +240,7 @@ public class ProducerServiceImpl implements ProducerService { ...@@ -237,7 +240,7 @@ public class ProducerServiceImpl implements ProducerService {
} }
/** /**
* * 保存api基本信息
* @param req * @param req
* @return * @return
*/ */
...@@ -263,15 +266,14 @@ public class ProducerServiceImpl implements ProducerService { ...@@ -263,15 +266,14 @@ public class ProducerServiceImpl implements ProducerService {
} else if (timeout > maxTimeout) { } else if (timeout > maxTimeout) {
return Result.of_success("接口超时时间最大5000ms"); return Result.of_success("接口超时时间最大5000ms");
} }
apiInterface.setTimeout(req.getTimeout());
int res = apiInterfaceMapper.insert(apiInterface); int res = apiInterfaceMapper.insert(apiInterface);
if (res == 0){ if (res == 0){
throw new RuntimeException(ResultMsg.UPDATE_FAIL.getMsg()); throw ResponseException.of_error("保存Api信息失败!");
} }
return Result.of_success(ResultMsg.INSERT_SUCCESS); return Result.of_success(ResultMsg.INSERT_SUCCESS);
} }
/** /**
* 保存修改的api信息 * 保存修改的api信息
* *
...@@ -320,6 +322,7 @@ public class ProducerServiceImpl implements ProducerService { ...@@ -320,6 +322,7 @@ public class ProducerServiceImpl implements ProducerService {
return Result.of_success("接口超时时间最大5000ms"); return Result.of_success("接口超时时间最大5000ms");
} }
apiInterface.setUpdateDate(new Date()); apiInterface.setUpdateDate(new Date());
apiInterface.setTimeout(req.getTimeout());
//apiInterface.setUpdateUser(currentUser.getUserName()); //apiInterface.setUpdateUser(currentUser.getUserName());
int result = apiInterfaceMapper.updateById(apiInterface); int result = apiInterfaceMapper.updateById(apiInterface);
if (result > 0) { if (result > 0) {
......
...@@ -8,42 +8,58 @@ ...@@ -8,42 +8,58 @@
update_user, is_deleted update_user, is_deleted
</sql> </sql>
<select id="selectAuthDetail" resultType="com.jz.dm.models.dto.AuthInfoDto"> <select id="selectAuthDetail" resultType="com.jz.dm.models.dto.AuthInfoDto">
SELECT au.id AS id, SELECT au.id AS id,
au.api_org_id AS apiOrgId, au.api_org_id AS apiOrgId,
au.api_interface_id AS apiInterFace, au.api_interface_id AS apiInterFace,
au.auth_mode AS authMode, (CASE au.auth_mode
au.valid_start_time AS validStartTime, WHEN 'RECORD_TIME_MODE' THEN '按时间调用'
au.valid_end_time AS validEndTime, WHEN 'PERMANENT_TIME_MODE' THEN '永久有效'
au.status AS status, WHEN 'POWER_CALL_MODE' THEN '按次调用'
au.remark AS remark, END) AS authMode,
au.create_time AS createDate, au.auth_code AS authCode,
au.create_user AS createUser, DATE_FORMAT(au.valid_start_time,'%Y-%m-%d %H:%i:%s') AS validStartTime,
ao.org_name AS orgName, DATE_FORMAT(au.valid_end_time,'%Y-%m-%d %H:%i:%s') AS validEndTime,
ai.api_key AS apiKey (CASE au.status
WHEN '1' THEN '正常'
WHEN '2' THEN '作废'
END) AS status,
au.remark AS remark,
DATE_FORMAT(au.create_date,'%Y-%m-%d %H:%i:%s') AS createDate,
au.create_user AS createUser,
ao.org_name AS orgName,
ai.api_key AS apiKey
FROM t_api_auth AS au FROM t_api_auth AS au
JOIN t_api_interface AS ai ON au.api_interface_id = ai.id AND ai.is_deleted =0 AND ai.`status` ='2' JOIN t_api_interface AS ai ON au.api_interface_id = ai.id AND ai.is_deleted =0 AND ai.`status` ='2'
JOIN t_api_org AS ao ON au.api_org_id = ao.id AND ao.`status` ='1' AND ao.is_deleted =0 JOIN t_api_org AS ao ON au.api_org_id = ao.id AND ao.`status` ='1' AND ao.is_deleted =0
WHERE au.is_deleted =0 WHERE au.is_deleted =0
AND au.id =#{req.getId} AND au.id =#{req.id}
</select> </select>
<select id="listSelectApiAuth" resultType="com.jz.dm.models.dto.AuthInfoDto"> <select id="listSelectApiAuth" resultType="com.jz.dm.models.dto.AuthInfoDto">
SELECT au.id AS id, SELECT au.id AS id,
au.api_org_id AS apiOrgId, au.api_org_id AS apiOrgId,
au.api_interface_id AS apiInterFace, au.api_interface_id AS apiInterFace,
au.auth_mode AS authMode, (CASE au.auth_mode
au.valid_start_time AS validStartTime, WHEN 'RECORD_TIME_MODE' THEN '按时间调用'
au.valid_end_time AS validEndTime, WHEN 'PERMANENT_TIME_MODE' THEN '永久有效'
au.status AS status, WHEN 'POWER_CALL_MODE' THEN '按次调用'
au.remark AS remark, END) AS authMode,
au.create_time AS createDate, au.auth_code AS authCode,
au.create_user AS createUser, DATE_FORMAT(au.valid_start_time,'%Y-%m-%d %H:%i:%s') AS validStartTime,
ao.org_name AS orgName, DATE_FORMAT(au.valid_end_time,'%Y-%m-%d %H:%i:%s') AS validEndTime,
ai.api_key AS apiKey (CASE au.status
FROM t_api_auth AS au WHEN '1' THEN '正常'
WHEN '2' THEN '作废'
END) AS status,
au.remark AS remark,
DATE_FORMAT(au.create_date,'%Y-%m-%d %H:%i:%s') AS createDate,
au.create_user AS createUser,
ao.org_name AS orgName,
ai.api_key AS apiKey
FROM t_api_auth AS au
JOIN t_api_interface AS ai ON au.api_interface_id = ai.id AND ai.is_deleted =0 AND ai.`status` ='2' JOIN t_api_interface AS ai ON au.api_interface_id = ai.id AND ai.is_deleted =0 AND ai.`status` ='2'
JOIN t_api_org AS ao ON au.api_org_id = ao.id AND ao.`status` ='1' AND ao.is_deleted =0 JOIN t_api_org AS ao ON au.api_org_id = ao.id AND ao.`status` ='1' AND ao.is_deleted =0
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>
</mapper> </mapper>
package com.jz.dm.gateway.org; package com.jz.dm.gateway.auth;
import com.jz.dm.gateway.SpringTestCase; import com.jz.dm.gateway.SpringTestCase;
import com.jz.dm.service.AuthService; import com.jz.dm.service.AuthService;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment