forked from luyan/epmet-cloud-lingshan
				
			
				 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