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

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

暂时停用lzuul filter:login|auth;

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