12 changed files with 259 additions and 130 deletions
@ -1,83 +1,85 @@ |
|||
package com.epmet.filter; |
|||
|
|||
import com.epmet.commons.tools.constant.AppClientConstant; |
|||
import com.epmet.commons.tools.constant.Constant; |
|||
import com.epmet.commons.tools.security.dto.BaseTokenDto; |
|||
import com.epmet.commons.tools.utils.CpUserDetailRedis; |
|||
import com.epmet.jwt.JwtTokenUtils; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.cloud.gateway.filter.GatewayFilterChain; |
|||
import org.springframework.cloud.gateway.filter.GlobalFilter; |
|||
import org.springframework.http.HttpHeaders; |
|||
import org.springframework.http.server.reactive.ServerHttpRequest; |
|||
import org.springframework.stereotype.Component; |
|||
import org.springframework.web.server.ServerWebExchange; |
|||
import reactor.core.publisher.Mono; |
|||
|
|||
/** |
|||
* Feign调用发送请求的Filter |
|||
* 目前用于封装用户相关信息到request,供上游微服务使用 |
|||
*/ |
|||
@Component |
|||
public class FeignRequestFilter implements GlobalFilter, UserTokenFilter { |
|||
|
|||
private Logger logger = LoggerFactory.getLogger(getClass()); |
|||
|
|||
@Autowired |
|||
private JwtTokenUtils jwtTokenUtils; |
|||
@Autowired |
|||
private CpUserDetailRedis cpUserDetailRedis; |
|||
|
|||
@Override |
|||
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { |
|||
ServerHttpRequest request = exchange.getRequest(); |
|||
HttpHeaders headers = request.getHeaders(); |
|||
String token = headers.getFirst(Constant.AUTHORIZATION_HEADER); |
|||
if (StringUtils.isBlank(token)) { |
|||
token = headers.getFirst(Constant.TOKEN_HEADER); |
|||
logger.info("token=" + token); |
|||
} else { |
|||
logger.info("authorization=" + token); |
|||
} |
|||
if (StringUtils.isBlank(token)) { |
|||
token = request.getQueryParams().getFirst(Constant.AUTHORIZATION_HEADER); |
|||
logger.info("params token:" + token); |
|||
} |
|||
|
|||
if (StringUtils.isBlank(token)) { |
|||
return chain.filter(exchange); |
|||
} |
|||
|
|||
BaseTokenDto baseTokenDto = getBaseTokenDto(token, jwtTokenUtils); |
|||
|
|||
if (baseTokenDto != null) { |
|||
ServerHttpRequest build = exchange.getRequest().mutate() |
|||
.header(AppClientConstant.USER_ID, new String[]{baseTokenDto.getUserId()}) |
|||
.header(AppClientConstant.TRANSACTION_SERIAL_KEY, new String[]{getTransactionSerial()}) |
|||
.build(); |
|||
return chain.filter(exchange.mutate().request(build).build()); |
|||
} |
|||
|
|||
return chain.filter(exchange); |
|||
} |
|||
|
|||
/** |
|||
* 获取事务流水号 |
|||
* @return |
|||
*/ |
|||
public static String getTransactionSerial() { |
|||
String[] letterPool = {"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"}; |
|||
|
|||
StringBuilder sb = new StringBuilder(); |
|||
for (int i = 0; i < 2; i++) { |
|||
sb.append(letterPool[(int) (Math.random() * 25)]); |
|||
} |
|||
|
|||
sb.append(System.currentTimeMillis()); |
|||
return sb.toString(); |
|||
} |
|||
} |
|||
//package com.epmet.filter;
|
|||
//
|
|||
//import com.epmet.commons.tools.constant.AppClientConstant;
|
|||
//import com.epmet.commons.tools.constant.Constant;
|
|||
//import com.epmet.commons.tools.security.dto.BaseTokenDto;
|
|||
//import com.epmet.commons.tools.utils.CpUserDetailRedis;
|
|||
//import com.epmet.jwt.JwtTokenUtils;
|
|||
//import org.apache.commons.lang3.StringUtils;
|
|||
//import org.slf4j.Logger;
|
|||
//import org.slf4j.LoggerFactory;
|
|||
//import org.springframework.beans.factory.annotation.Autowired;
|
|||
//import org.springframework.cloud.gateway.filter.GatewayFilterChain;
|
|||
//import org.springframework.cloud.gateway.filter.GlobalFilter;
|
|||
//import org.springframework.http.HttpHeaders;
|
|||
//import org.springframework.http.server.reactive.ServerHttpRequest;
|
|||
//import org.springframework.stereotype.Component;
|
|||
//import org.springframework.web.server.ServerWebExchange;
|
|||
//import reactor.core.publisher.Mono;
|
|||
//
|
|||
///**
|
|||
// * Feign调用发送请求的Filter
|
|||
// * 目前用于封装用户相关信息到request,供上游微服务使用
|
|||
// * 已过时,功能移入CpAuthGatewayFilterFacotry
|
|||
// */
|
|||
//@Component
|
|||
//@Deprecated
|
|||
//public class FeignRequestFilter implements GlobalFilter, UserTokenFilter {
|
|||
//
|
|||
// private Logger logger = LoggerFactory.getLogger(getClass());
|
|||
//
|
|||
// @Autowired
|
|||
// private JwtTokenUtils jwtTokenUtils;
|
|||
// @Autowired
|
|||
// private CpUserDetailRedis cpUserDetailRedis;
|
|||
//
|
|||
// @Override
|
|||
// public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
|
|||
// ServerHttpRequest request = exchange.getRequest();
|
|||
// HttpHeaders headers = request.getHeaders();
|
|||
// String token = headers.getFirst(Constant.AUTHORIZATION_HEADER);
|
|||
// if (StringUtils.isBlank(token)) {
|
|||
// token = headers.getFirst(Constant.TOKEN_HEADER);
|
|||
// logger.info("token=" + token);
|
|||
// } else {
|
|||
// logger.info("authorization=" + token);
|
|||
// }
|
|||
// if (StringUtils.isBlank(token)) {
|
|||
// token = request.getQueryParams().getFirst(Constant.AUTHORIZATION_HEADER);
|
|||
// logger.info("params token:" + token);
|
|||
// }
|
|||
//
|
|||
// if (StringUtils.isBlank(token)) {
|
|||
// return chain.filter(exchange);
|
|||
// }
|
|||
//
|
|||
// BaseTokenDto baseTokenDto = getBaseTokenDto(token, jwtTokenUtils);
|
|||
//
|
|||
// if (baseTokenDto != null) {
|
|||
// ServerHttpRequest build = exchange.getRequest().mutate()
|
|||
// .header(AppClientConstant.USER_ID, new String[]{baseTokenDto.getUserId()})
|
|||
// .header(AppClientConstant.TRANSACTION_SERIAL_KEY, new String[]{getTransactionSerial()})
|
|||
// .build();
|
|||
// return chain.filter(exchange.mutate().request(build).build());
|
|||
// }
|
|||
//
|
|||
// return chain.filter(exchange);
|
|||
// }
|
|||
//
|
|||
// /**
|
|||
// * 获取事务流水号
|
|||
// * @return
|
|||
// */
|
|||
// public static String getTransactionSerial() {
|
|||
// String[] letterPool = {"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"};
|
|||
//
|
|||
// StringBuilder sb = new StringBuilder();
|
|||
// for (int i = 0; i < 2; i++) {
|
|||
// sb.append(letterPool[(int) (Math.random() * 25)]);
|
|||
// }
|
|||
//
|
|||
// sb.append(System.currentTimeMillis());
|
|||
// return sb.toString();
|
|||
// }
|
|||
//}
|
|||
|
@ -0,0 +1,32 @@ |
|||
package com.epmet.resi.group.dto.topic.result; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.io.Serializable; |
|||
|
|||
/** |
|||
* @Description 关闭话题详情相关信息 |
|||
* @ClassName ResiTopicClosingMsgResultDTO |
|||
* @Auth wangc |
|||
* @Date 2020-06-01 17:44 |
|||
*/ |
|||
@Data |
|||
public class ResiTopicClosingMsgResultDTO implements Serializable { |
|||
private static final long serialVersionUID = 3959914139163088792L; |
|||
|
|||
/** |
|||
* 关闭人(目前只有组长可以关闭话题) |
|||
* */ |
|||
private String closeUserName; |
|||
|
|||
/** |
|||
* 关闭时间 |
|||
* */ |
|||
private Long closeDateTime; |
|||
|
|||
/** |
|||
* 关闭理由 |
|||
* */ |
|||
private String closeReason; |
|||
|
|||
} |
Loading…
Reference in new issue