| 
					
				 | 
			
			
				@ -1,91 +1,86 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//package com.yihu.jw.gateway.filter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.fasterxml.jackson.databind.ObjectMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.netflix.zuul.ZuulFilter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.netflix.zuul.context.RequestContext; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.yihu.jw.restmodel.web.Envelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.slf4j.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.slf4j.LoggerFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.springframework.context.annotation.Bean; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.springframework.context.annotation.Primary; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.springframework.http.HttpStatus; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.springframework.security.oauth2.common.OAuth2AccessToken; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.springframework.security.oauth2.provider.token.TokenStore; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.springframework.security.oauth2.provider.token.store.redis.RedisTokenStore; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.springframework.stereotype.Component; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import javax.servlet.http.HttpServletRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				///** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// * Created by progr1mmer on 2017/12/27 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//@Component 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//public class BasicZuulFilter extends ZuulFilter { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private static final Logger logger = LoggerFactory.getLogger(BasicZuulFilter.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private static final String ACCESS_TOKEN_PARAMETER = "token"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private ObjectMapper objectMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private TokenStore tokenStore; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public String filterType() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        return "pre"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public int filterOrder() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public boolean shouldFilter() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public Object run() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        RequestContext ctx = RequestContext.getCurrentContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        HttpServletRequest request = ctx.getRequest(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        String url = request.getRequestURI(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        //内部微服务有不需要认证的地址请在URL上追加/open/来进行过滤,如/api/v1.0/open/**,不要在此继续追加!!! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if (url.contains("/authentication/") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                || url.contains("/file/") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                || url.contains("/open/") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                || url.contains("/jkzl/") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                || url.contains("/fzGateway/") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                || url.contains("/usersOfApp") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                || url.contains("/users/h5/handshake") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                || url.contains("/appVersion/getAppVersion") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                || url.contains("/messageTemplate/messageOrderPush") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                || url.contains("/account/")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        return this.authenticate(ctx, request, url); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private Object authenticate(RequestContext ctx, HttpServletRequest request, String path) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        String accessToken = this.extractToken(request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if (null == accessToken) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return this.forbidden(ctx, HttpStatus.FORBIDDEN.value(), "token can not be null"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        OAuth2AccessToken oAuth2AccessToken = tokenStore.readAccessToken(accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if (null == oAuth2AccessToken) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return this.forbidden(ctx, HttpStatus.FORBIDDEN.value(), "invalid token"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if (oAuth2AccessToken.isExpired()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return this.forbidden(ctx, HttpStatus.PAYMENT_REQUIRED.value(), "expired token"); //返回402 登陆过期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.jw.gateway.filter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.fasterxml.jackson.databind.ObjectMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.netflix.zuul.ZuulFilter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.netflix.zuul.context.RequestContext; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.web.Envelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.slf4j.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.slf4j.LoggerFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.context.annotation.Bean; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.context.annotation.Primary; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.http.HttpStatus; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.security.oauth2.common.OAuth2AccessToken; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.security.oauth2.provider.OAuth2Authentication; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.security.oauth2.provider.token.TokenStore; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.security.oauth2.provider.token.store.redis.RedisTokenStore; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Component; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import javax.servlet.http.HttpServletRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Set; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Created by progr1mmer on 2017/12/27 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Component 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class BasicZuulFilter extends ZuulFilter { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private static final Logger logger = LoggerFactory.getLogger(BasicZuulFilter.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private static final String ACCESS_TOKEN_PARAMETER = "token"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private ObjectMapper objectMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private TokenStore tokenStore; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String filterType() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return "pre"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public int filterOrder() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public boolean shouldFilter() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Object run() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        RequestContext ctx = RequestContext.getCurrentContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        HttpServletRequest request = ctx.getRequest(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String url = request.getRequestURI(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //内部微服务有不需要认证的地址请在URL上追加/open/来进行过滤,如/api/v1.0/open/**,不要在此继续追加!!! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (url.contains("/auth/")//验证服务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                || url.contains("/wechat/")//微信 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                || url.contains("/open/")) {//开发接口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return this.authenticate(ctx, request, url); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private Object authenticate(RequestContext ctx, HttpServletRequest request, String path) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String accessToken = this.extractToken(request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null == accessToken) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return this.forbidden(ctx, HttpStatus.FORBIDDEN.value(), "token can not be null"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        OAuth2AccessToken oAuth2AccessToken = tokenStore.readAccessToken(accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null == oAuth2AccessToken) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return this.forbidden(ctx, HttpStatus.FORBIDDEN.value(), "invalid token"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (oAuth2AccessToken.isExpired()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return this.forbidden(ctx, HttpStatus.PAYMENT_REQUIRED.value(), "expired token"); //返回402 登陆过期 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        //将token的认证信息附加到请求中,转发给下游微服务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        /*OAuth2Authentication auth = tokenStore.readAuthentication(accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        ctx.addZuulRequestHeader("x-auth-name", auth.getName());*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        OAuth2Authentication auth = tokenStore.readAuthentication(accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        ctx.addZuulRequestHeader("x-auth-name", auth.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        //以下代码取消注释可开启Oauth2应用资源授权验证 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        /*Set<String> resourceIds = auth.getOAuth2Request().getResourceIds(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        Set<String> resourceIds = auth.getOAuth2Request().getResourceIds(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        for (String resourceId : resourceIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            if (resourceId.equals("*")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                return true; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -99,37 +94,37 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        return this.forbidden(ctx, HttpStatus.FORBIDDEN.value(), "invalid token does not contain request resource " + path);*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private String extractToken(HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        String accessToken = request.getHeader(ACCESS_TOKEN_PARAMETER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if (null == accessToken) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            accessToken = request.getParameter(ACCESS_TOKEN_PARAMETER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        return accessToken; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private Object forbidden(RequestContext requestContext, int status, String errorMsg) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        requestContext.setSendZuulResponse(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        Envelop envelop = new Envelop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        envelop.setMessage(errorMsg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        envelop.setStatus(status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            //requestContext.setResponseStatusCode(status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            requestContext.getResponse().getWriter().write(objectMapper.writeValueAsString(envelop)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            requestContext.setResponseStatusCode(HttpStatus.INTERNAL_SERVER_ERROR.value()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            logger.error(e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    @Bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    @Primary 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public RedisTokenStore redisTokenStore(JedisConnectionFactory jedisConnectionFactory) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        return new RedisTokenStore(jedisConnectionFactory); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        return this.forbidden(ctx, HttpStatus.FORBIDDEN.value(), "invalid token does not contain request resource " + path); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String extractToken(HttpServletRequest request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String accessToken = request.getHeader(ACCESS_TOKEN_PARAMETER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null == accessToken) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            accessToken = request.getParameter(ACCESS_TOKEN_PARAMETER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return accessToken; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private Object forbidden(RequestContext requestContext, int status, String errorMsg) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        requestContext.setSendZuulResponse(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Envelop envelop = new Envelop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        envelop.setMessage(errorMsg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        envelop.setStatus(status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //requestContext.setResponseStatusCode(status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            requestContext.getResponse().getWriter().write(objectMapper.writeValueAsString(envelop)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            requestContext.setResponseStatusCode(HttpStatus.INTERNAL_SERVER_ERROR.value()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.error(e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Bean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Primary 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public RedisTokenStore redisTokenStore(JedisConnectionFactory jedisConnectionFactory) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return new RedisTokenStore(jedisConnectionFactory); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |