org.springframework.web.context.request.RequestContextHolder#getRequestAttributes ( )源码实例Demo

下面列出了org.springframework.web.context.request.RequestContextHolder#getRequestAttributes ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: parker   文件: FeignHeadConfig.java
@Bean
public RequestInterceptor requestInterceptor() {
    return requestTemplate -> {
        ServletRequestAttributes attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        if (attrs != null) {
            HttpServletRequest request = attrs.getRequest();
            Enumeration<String> headerNames = request.getHeaderNames();
            if (headerNames != null) {
                while (headerNames.hasMoreElements()) {
                    String name = headerNames.nextElement();
                    String value = request.getHeader(name);

                    // 遍历请求头里面的属性字段,将token添加到新的请求头中转发到下游服务
                    if ("token".equalsIgnoreCase(name)) {
                        //log.debug("添加自定义请求头key:" + name + ",value:" + value);
                        requestTemplate.header(name, value);
                    }
                }
            } else {
                log.warn("FeignHeadConfig", "获取请求头失败!");
            }
        }
    };
}
 
源代码2 项目: mall-swarm   文件: FeignRequestInterceptor.java
@Override
public void apply(RequestTemplate requestTemplate) {
    ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
            .getRequestAttributes();
    if (attributes != null) {
        HttpServletRequest request = attributes.getRequest();
        Enumeration<String> headerNames = request.getHeaderNames();
        if (headerNames != null) {
            while (headerNames.hasMoreElements()) {
                String name = headerNames.nextElement();
                String values = request.getHeader(name);
                requestTemplate.header(name, values);
            }
        }
    }
}
 
源代码3 项目: framework   文件: UserSession.java
public static UserSession getUserSession() {
    ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    HttpServletRequest req = requestAttributes.getRequest();

    AdamProperties adamProperties = CHERRY.SPRING_CONTEXT.getBean(AdamProperties.class);
    String jwtToken = req.getHeader(adamProperties.getSecurity().getJwtToken().getHeaderName());
    if (StringUtils.isBlank(jwtToken)) {
        jwtToken = req.getParameter(adamProperties.getSecurity().getJwtToken().getRequestName());
    }
    jwtToken = jwtToken.replace(adamProperties.getSecurity().getJwtToken().getPrefix() + " ", "");

    UserSession userSession = new UserSession();
    if (StringUtils.isNotBlank(jwtToken)) {
        String userSessionString = CHERRY.SPRING_CONTEXT.getBean(StringRedisTemplate.class).boundValueOps(CHERRY.REDIS_KEY_SESSION + jwtToken).get();
        userSession = JSON.parseObject(userSessionString, UserSession.class);
    }

    return userSession;
}
 
源代码4 项目: spring-boot-study   文件: WebLogAspect.java
/**
 * 指定当前执行方法在logPointCut之前执行
 * */
@Before("logPointCut()")
public void doBefore(JoinPoint joinPoint) throws Throwable{
    // 接收到请求,记录请求内容
    ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    HttpServletRequest request = attributes.getRequest();

    // 记录下请求内容
    logger.info("请求地址 : " + request.getRequestURL().toString());
    logger.info("HTTP METHOD : " + request.getMethod());
    // 获取真实的ip地址
    //logger.info("IP : " + IPAddressUtil.getClientIpAddress(request));
    logger.info("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "."
            + joinPoint.getSignature().getName());
    logger.info("参数 : " + Arrays.toString(joinPoint.getArgs()));
    //loggger.info("参数 : " + joinPoint.getArgs());
}
 
源代码5 项目: mall-learning   文件: WebLogAspect.java
@Around("webLog()")
    public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable {
        long startTime = System.currentTimeMillis();
        //获取当前请求对象
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = attributes.getRequest();
        //记录请求信息
        WebLog webLog = new WebLog();
        Object result = joinPoint.proceed();
        Signature signature = joinPoint.getSignature();
        MethodSignature methodSignature = (MethodSignature) signature;
        Method method = methodSignature.getMethod();
        if (method.isAnnotationPresent(ApiOperation.class)) {
            ApiOperation apiOperation = method.getAnnotation(ApiOperation.class);
            webLog.setDescription(apiOperation.value());
        }
        long endTime = System.currentTimeMillis();
        String urlStr = request.getRequestURL().toString();
        webLog.setBasePath(StrUtil.removeSuffix(urlStr, URLUtil.url(urlStr).getPath()));
        webLog.setIp(request.getRemoteUser());
        webLog.setMethod(request.getMethod());
        webLog.setParameter(getParameter(method, joinPoint.getArgs()));
        webLog.setResult(result);
        webLog.setSpendTime((int) (endTime - startTime));
        webLog.setStartTime(startTime);
        webLog.setUri(request.getRequestURI());
        webLog.setUrl(request.getRequestURL().toString());
//        LOGGER.info("{}", JSONUtil.parse(webLog));
        Map<String,Object> logMap = new HashMap<>();
        logMap.put("url",webLog.getUrl());
        logMap.put("method",webLog.getMethod());
        logMap.put("parameter",webLog.getParameter());
        logMap.put("spendTime",webLog.getSpendTime());
        logMap.put("description",webLog.getDescription());
        LOGGER.info(Markers.appendEntries(logMap), JSONUtil.parse(webLog).toString());
        return result;
    }
 
源代码6 项目: mogu_blog_v2   文件: RequestHolder.java
/**
 * 获取所有session key
 *
 * @return String[]
 */
public static String[] getSessionKeys() {
    log.debug("getSessionKeys -- Thread id :{}, name : {}", Thread.currentThread().getId(), Thread.currentThread().getName());
    ServletRequestAttributes servletRequestAttributes = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes());
    if (null == servletRequestAttributes) {
        return null;
    }
    return servletRequestAttributes.getAttributeNames(RequestAttributes.SCOPE_SESSION);
}
 
源代码7 项目: mogu_blog_v2   文件: LoginRestApi.java
@ApiOperation(value = "退出登录", notes = "退出登录", response = String.class)
@PostMapping(value = "/logout")
public String logout() {
    ServletRequestAttributes attribute = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    HttpServletRequest request = attribute.getRequest();
    String token = request.getAttribute(SysConf.TOKEN).toString();
    redisUtil.delete(RedisConf.LOGIN_TOKEN_KEY + RedisConf.SEGMENTATION + token);
    return ResultUtil.result(SysConf.SUCCESS, MessageConf.OPERATION_SUCCESS);
}
 
/**
 * 使用feign client访问别的微服务时,将上游传过来的access_token、username、roles等信息放入header传递给下一个服务
 */
@Bean
public RequestInterceptor httpFeignInterceptor() {
    return template -> {
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
                .getRequestAttributes();
        if (attributes != null) {
            HttpServletRequest request = attributes.getRequest();
            Enumeration<String> headerNames = request.getHeaderNames();
            if (headerNames != null) {
                String headerName;
                String headerValue;
                while(headerNames.hasMoreElements()) {
                    headerName = headerNames.nextElement();
                    if (requestHeaders.contains(headerName)) {
                        headerValue = request.getHeader(headerName);
                        template.header(headerName, headerValue);
                    }
                }
            }
            //传递access_token,无网络隔离时需要传递
            /*
            String token = extractHeaderToken(request);
            if (StrUtil.isEmpty(token)) {
                token = request.getParameter(CommonConstant.ACCESS_TOKEN);
            }
            if (StrUtil.isNotEmpty(token)) {
                template.header(CommonConstant.TOKEN_HEADER, CommonConstant.BEARER_TYPE + " " + token);
            }
            */
        }
    };
}
 
源代码9 项目: feiqu-opensource   文件: BaseController.java
protected FqUserCache getCurrentUser(){
    ServletRequestAttributes servletRequestAttributes = ((ServletRequestAttributes) RequestContextHolder
            .getRequestAttributes());
    HttpServletRequest request = servletRequestAttributes
            .getRequest();
    HttpServletResponse response = servletRequestAttributes
            .getResponse();
    WebUtil webUtil = SpringUtils.getBean(WebUtil.class);
    return webUtil.currentUser(request,response);
}
 
源代码10 项目: macrozheng   文件: UmsAdminServiceImpl.java
/**
 * 添加登录记录
 * @param username 用户名
 */
private void insertLoginLog(String username) {
    UmsAdmin admin = getAdminByUsername(username);
    UmsAdminLoginLog loginLog = new UmsAdminLoginLog();
    loginLog.setAdminId(admin.getId());
    loginLog.setCreateTime(new Date());
    ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    HttpServletRequest request = attributes.getRequest();
    loginLog.setIp(request.getRemoteAddr());
    loginLogMapper.insert(loginLog);
}
 
源代码11 项目: uccn   文件: LogAspect.java
@Before("logPointCut()")
public void doBefore(JoinPoint joinPoint) throws Throwable {
    // 接收到请求,记录请求内容
    ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    HttpServletRequest request = attributes.getRequest();
    Map<String, String[]> parameterMap = request.getParameterMap();
    // 记录下请求内容
    logger.info("请求地址 : " + request.getRequestURL().toString());
    logger.info("HTTP METHOD : " + request.getMethod());
    logger.info("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "."
            + joinPoint.getSignature().getName());
    logger.info("参数 : " + Arrays.toString(joinPoint.getArgs()));
    logger.info("参数 : " + joinPoint.getArgs());
    logger.info("请求参数 : " + JSONUtil.toJsonStr(parameterMap));
}
 
源代码12 项目: uccn   文件: CookieUtil.java
public static void saveCookie(Cookie cookie) {
    ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    HttpServletResponse response = attributes.getResponse();
    response.addCookie(cookie);
}
 
源代码13 项目: oauth2-resource   文件: WebRequestLogAspect.java
@Before("wsLog()")
public void doBefore(JoinPoint joinPoint) {
    // 接收到请求,记录请求内容
    if (log.isInfoEnabled()) {
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        if (attributes != null) {
            HttpServletRequest request = attributes.getRequest();
            // 记录下请求内容
            Map<String, String[]> parameters = request.getParameterMap();

            try {
                String parametersString = null;
                String requestBody = null;
                if (parameters != null) {
                    parametersString = JsonUtil.multiValueMapToJsonString(parameters);
                }
                MethodSignature signature = (MethodSignature) joinPoint.getSignature();
                //获取被拦截的方法
                Method method = signature.getMethod();
                Object object = getAnnotatedParameterValueRequestBody(method, joinPoint.getArgs());
                if (object != null) {
                    requestBody = JsonUtil.objectToJsonString(object);
                }
                StringBuffer stringBuffer = new StringBuffer();
                stringBuffer.append("\n");

                Principal principal = request.getUserPrincipal();
                if (principal != null) {
                    stringBuffer.append("Request user ");
                    stringBuffer.append(principal.getName());
                    stringBuffer.append(";\n");
                }
                stringBuffer.append("Request from ");
                stringBuffer.append(ClientIpUtils.getIpAddress(request));
                stringBuffer.append(";\n");
                stringBuffer.append("User-Agent = ");
                stringBuffer.append(request.getHeader("User-Agent"));
                stringBuffer.append(";\n");
                stringBuffer.append("uri = ");
                stringBuffer.append(request.getRequestURL().toString());
                stringBuffer.append(";\n");
                stringBuffer.append("request method = ");
                stringBuffer.append(request.getMethod());
                stringBuffer.append(";\n");
                stringBuffer.append("request parameters = ");
                stringBuffer.append(parametersString);
                stringBuffer.append(";\n");
                stringBuffer.append("request body = ");
                stringBuffer.append(requestBody);
                stringBuffer.append(";\n");

                log.info(stringBuffer.toString());

            } catch (Exception e) {
                log.error("log http request Exception: ", e);
            }
        }
    }

}
 
源代码14 项目: EserKnife   文件: RequestContext.java
public static HttpServletRequest getRequest(){
    ServletRequestAttributes requestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
    return requestAttributes==null? null : requestAttributes.getRequest();
}
 
源代码15 项目: uccn   文件: CookieUtil.java
public static Cookie[] getCookies() {
    ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    HttpServletRequest request = attributes.getRequest();
    Cookie[] c = request.getCookies();
    return c;
}
 
源代码16 项目: DimpleBlog   文件: ServletUtils.java
public static ServletRequestAttributes getRequestAttributes() {
    RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
    return (ServletRequestAttributes) attributes;
}
 
源代码17 项目: oauth2-server   文件: WebRequestLogAspect.java
/**
 * 接收到请求,记录请求内容
 *
 * @param joinPoint
 * @throws Throwable
 */
@Before("wsLog()")
public void doBefore(JoinPoint joinPoint) throws Throwable {
    if (log.isInfoEnabled()) {
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        if (attributes != null) {
            HttpServletRequest request = attributes.getRequest();
            Map<String, String[]> parameters = request.getParameterMap();
            try {
                String parametersString = null;
                String requestBody = null;
                if (parameters != null) {
                    parametersString = JsonUtil.multiValueMapToJsonString(parameters);
                }
                MethodSignature signature = (MethodSignature) joinPoint.getSignature();
                //获取被拦截的方法
                Method method = signature.getMethod();
                Object object = getAnnotatedParameterValueRequestBody(method, joinPoint.getArgs());
                if (object != null) {
                    requestBody = JsonUtil.objectToJsonString(object);
                }
                StringBuffer stringBuffer = new StringBuffer();
                stringBuffer.append("\nRequest from = ");
                stringBuffer.append(ClientIpUtil.getIpAddress(request));
                stringBuffer.append(";\n");
                stringBuffer.append("uri = ");
                stringBuffer.append(request.getRequestURL().toString());
                stringBuffer.append(";\n");
                stringBuffer.append("request method = ");
                stringBuffer.append(request.getMethod());
                stringBuffer.append(";\n");
                stringBuffer.append("content type = ");
                stringBuffer.append(request.getContentType());
                stringBuffer.append(";\n");
                stringBuffer.append("request parameters = ");
                stringBuffer.append(parametersString);
                stringBuffer.append(";\n");
                stringBuffer.append("request body = ");
                stringBuffer.append(requestBody);
                stringBuffer.append(";\n");

                log.info(stringBuffer.toString());
                String headers = JsonUtil.objectToJsonString(getHeadersInfo(request));
                log.info("headers:" + headers);
            } catch (Exception e) {
                log.info("log http request Exception: ", e);
            }
        }
    }
}
 
源代码18 项目: black-shop   文件: WxMenuController.java
@GetMapping("/create")
public String menuCreateSample(@PathVariable String appid) throws WxErrorException, MalformedURLException {
	WxMenu menu = new WxMenu();
	WxMenuButton button1 = new WxMenuButton();
	button1.setType(MenuButtonType.CLICK);
	button1.setName("今日歌曲");
	button1.setKey("V1001_TODAY_MUSIC");

	// WxMenuButton button2 = new WxMenuButton();
	// button2.setType(WxConsts.BUTTON_MINIPROGRAM);
	// button2.setName("小程序");
	// button2.setAppId("wx286b93c14bbf93aa");
	// button2.setPagePath("pages/lunar/index.html");
	// button2.setUrl("http://mp.weixin.qq.com");

	WxMenuButton button3 = new WxMenuButton();
	button3.setName("菜单");

	menu.getButtons().add(button1);
	// menu.getButtons().add(button2);
	menu.getButtons().add(button3);

	WxMenuButton button31 = new WxMenuButton();
	button31.setType(MenuButtonType.VIEW);
	button31.setName("搜索");
	button31.setUrl("http://www.soso.com/");

	WxMenuButton button32 = new WxMenuButton();
	button32.setType(MenuButtonType.VIEW);
	button32.setName("视频");
	button32.setUrl("http://v.qq.com/");

	WxMenuButton button33 = new WxMenuButton();
	button33.setType(MenuButtonType.CLICK);
	button33.setName("赞一下我们");
	button33.setKey("V1001_GOOD");

	WxMenuButton button34 = new WxMenuButton();
	button34.setType(MenuButtonType.VIEW);
	button34.setName("获取用户信息");

	ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder
			.getRequestAttributes();
	if (servletRequestAttributes != null) {
		HttpServletRequest request = servletRequestAttributes.getRequest();
		URL requestURL = new URL(request.getRequestURL().toString());
		String url = WxMpConfiguration.getMpServices()
				.get(appid).oauth2buildAuthorizationUrl(String.format("%s://%s/wx/redirect/%s/greet",
						requestURL.getProtocol(), requestURL.getHost(), appid),
						WxConsts.OAuth2Scope.SNSAPI_USERINFO, null);
		button34.setUrl(url);
	}

	button3.getSubButtons().add(button31);
	button3.getSubButtons().add(button32);
	button3.getSubButtons().add(button33);
	button3.getSubButtons().add(button34);

	return WxMpConfiguration.getMpServices().get(appid).getMenuService().menuCreate(menu);
}
 
源代码19 项目: NetworkDisk_Storage   文件: CookieUtils.java
public static void saveCookie(Cookie cookie) {
	ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
	HttpServletResponse response = attributes.getResponse();
	response.addCookie(cookie);
}
 
源代码20 项目: yue-library   文件: ServletUtils.java
/**
 * 获得当前请求上下文中的{@linkplain ServletRequestAttributes}
 * @return ServletRequestAttributes
 */
public static ServletRequestAttributes getRequestAttributes() {
	return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes());
}