HttpServletRequest接收的是Json格式數據的解決辦法


@Override
	    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
		throws Exception {
		if (handler.getClass().isAssignableFrom(HandlerMethod.class)) {
			Authentication Authentication = ((HandlerMethod) handler)
					.getMethodAnnotation(Authentication.class);
			//如果沒用Authentication這個註解標註的接口或者validate=false則直接通過
			if (Authentication == null
					|| Authentication.validate() == false) {
				return true;
			} else {
				BufferedReader streamReader = new BufferedReader( new InputStreamReader(request.getInputStream(), "UTF-8"));  
	                        StringBuilder responseStrBuilder = new StringBuilder();  
	                        String inputStr;  
	                        while ((inputStr = streamReader.readLine()) != null)  
	                        responseStrBuilder.append(inputStr);  
	                        Map<String ,String> map = JSON.parseObject(Base64.decode(responseStrBuilder.toString()),Map.class);
				String userToken = map.get("token");
				log.debug("current token**************: " + userToken);
				if (StringUtils.isBlank(userToken)) {
					returnValue(response);
					return false;
				} else {
					TokenTools tokenTools = new TokenTools();
					if (!tokenTools.checkLoginInfo(userToken)) {
						returnValue(response);
						return false;
					}
					log.debug("You have logged in successfully!");
					return true;
				}
			}
		}else {
			return true;
		}
	}
加紅的代碼是對Json串的處理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章