记得上下班打卡 | git大法好,push需谨慎

Commit 21b4196a authored by 张国柄's avatar 张国柄

暂时停用lzuul filter:login|auth;

添加第三方登录注册接口到login filter;
parent 83614413
......@@ -82,16 +82,16 @@ global:
login:
url: /adam/login/sms,
/adam/login/mobile,
/adam/login/tpa,
/adam/login/tpa
exclude:
url: /adam/v2/api-docs,
/kylin/v2/api-docs,
/adam/v2/api-docs-ext,
/kylin/v2/api-docs,
/kylin/v2/api-docs-ext,
/adam/send,
/adam/login/sms,
/adam/login/mobile,
/adam/login/tpa,
/adam/send
# -----------------------------------------------------------
#解决错误 com.netflix.client.ClientException: Load balancer does not have available server for client:panfeng-item-service
#这样就可以即指定path与URL,又不破坏Zuul的Hystrix与Ribbon特性了。
......
......@@ -71,32 +71,33 @@ public class AdamEntersServiceImpl extends ServiceImpl<AdamEntersMapper, AdamEnt
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void add(AdamEnters info) {
if (info.getIsDefault()) {
Set<Object> keys = (Set<Object>) redisUtil.hkeys(AdamRedisConst.INFO_ENTERS.concat(info.getUid()));
if (!CollectionUtils.isEmpty(keys)) {
AdamEnters deaultEnters = new AdamEnters();
deaultEnters.setIsDefault(false);
deaultEnters.setUpdatedAt(info.getCreatedAt());
deaultEnters.setUid(info.getUid());
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(deaultEnters));
Document doc = mongoTemplate.getCollection(AdamEnters.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("uid").is(deaultEnters.getUid()).and("isDefault").is(true)).getQueryObject(),
object, new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
if (null != doc) {
List<Object> paramList = new ArrayList<>();
paramList.add(deaultEnters.getIsDefault());
paramList.add(deaultEnters.getUpdatedAt());
paramList.add(doc.get("uid"));
rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
SqlMapping.get("adam_enters.update.is_default", paramList.toArray()));
AdamEnters enters = BsonUtil.toBean(doc, AdamEnters.class);
redisUtil.hset(AdamRedisConst.INFO_ENTERS.concat(enters.getUid()), enters.getEntersId(), enters);
}
}
}
// if (info.getIsDefault()) {
// Set<Object> keys = (Set<Object>) redisUtil.hkeys(AdamRedisConst.INFO_ENTERS.concat(info.getUid()));
// if (!CollectionUtils.isEmpty(keys)) {
// AdamEnters deaultEnters = new AdamEnters();
// deaultEnters.setIsDefault(false);
// deaultEnters.setUpdatedAt(info.getCreatedAt());
// deaultEnters.setUid(info.getUid());
// BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(deaultEnters));
// Document doc = mongoTemplate.getCollection(AdamEnters.class.getSimpleName()).findOneAndUpdate(
// Query.query(Criteria.where("uid").is(deaultEnters.getUid()).and("isDefault").is(true)).getQueryObject(),
// object, new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
//
// if (null != doc) {
// List<Object> paramList = new ArrayList<>();
// paramList.add(deaultEnters.getIsDefault());
// paramList.add(deaultEnters.getUpdatedAt());
// paramList.add(doc.get("uid"));
// rabbitTemplate.convertAndSend(MQConst.EXCHANGES_LIQUIDNET_SQL, MQConst.ROUTING_KEY_SQL,
// SqlMapping.get("adam_enters.update.is_default", paramList.toArray()));
//
// AdamEnters enters = BsonUtil.toBean(doc, AdamEnters.class);
// redisUtil.hset(AdamRedisConst.INFO_ENTERS.concat(enters.getUid()), enters.getEntersId(), enters);
// }
// }
// }
info.setIsDefault(CollectionUtils.isEmpty(this.list(info.getUid())));
mongoTemplate.insert(Collections.singletonList(info), AdamEnters.class.getSimpleName());
......
......@@ -41,7 +41,8 @@ public class GlobalAuthFilter extends ZuulFilter {
public boolean shouldFilter() {
RequestContext ctx = RequestContext.getCurrentContext();
String requestURI = ctx.getRequest().getRequestURI();
return !excludeUrls.contains(requestURI);
// return !excludeUrls.contains(requestURI);
return false;
}
@Override
......
package com.liquidnet.support.zuul.filter;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.ResponseDto;
import com.liquidnet.service.adam.dto.AdamThirdPartParam;
import com.liquidnet.service.adam.dto.vo.AdamLoginInfoVo;
import com.liquidnet.service.feign.adam.api.FeignAdamLoginClient;
import com.liquidnet.support.zuul.util.PathMatchUtil;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Component
......@@ -38,11 +41,11 @@ public class GlobalLoginFilter extends ZuulFilter {
public boolean shouldFilter() {
RequestContext ctx = RequestContext.getCurrentContext();
String requestURI = ctx.getRequest().getRequestURI();
for (String url : loginUrls) {
if (PathMatchUtil.isPathMatch(url, requestURI)) {
return true;
}
}
// for (String url : loginUrls) {
// if (PathMatchUtil.isPathMatch(url, requestURI)) {
// return true;
// }
// }
return false;
}
......@@ -51,10 +54,10 @@ public class GlobalLoginFilter extends ZuulFilter {
RequestContext requestContext = RequestContext.getCurrentContext();
HttpServletRequest servletRequest = requestContext.getRequest();
String token = servletRequest.getHeader("authorization");
if (StringUtils.isNotBlank(token)) {
requestContext.addZuulResponseHeader("authorization", token);
}
// String token = servletRequest.getHeader("authorization");
// if (StringUtils.isNotBlank(token)) {
// requestContext.addZuulResponseHeader("authorization", token);
// }
ResponseDto<AdamLoginInfoVo> responseDto = null;
switch (servletRequest.getRequestURI()) {
......@@ -65,12 +68,19 @@ public class GlobalLoginFilter extends ZuulFilter {
responseDto = feignAdamLoginClient.loginByMobile(servletRequest.getParameter("accessToken"));
break;
case "/adam/login/tpa":
String body = null;
try {
body = servletRequest.getReader().lines().collect(Collectors.joining(System.lineSeparator()));
} catch (IOException e) {
log.error("reader request body exception", e);
}
responseDto = feignAdamLoginClient.loginByTpa(JsonUtils.fromJson(body, AdamThirdPartParam.class));
break;
default:
log.warn("###无效的登录链接:{}", servletRequest.getRequestURI());
break;
}
log.debug("login request result:{}", JsonUtils.toJson(responseDto));
return null;
}
}
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