ResponseUtil 请求返回

package com.infosec.sso.common;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;

import org.openid4java.message.ParameterList;
import org.springframework.util.StringUtils;

import com.alibaba.fastjson.JSON;
import com.infosec.sso.authentication.IDInfo;
import com.infosec.sso.ssoprotocol.openid.util.OpenIdProviderService;
import com.netauth.utils.currentuser.LoginUserUtil;

/**
 * 
 * <p> 
 *   {输出JSON}
 * </p>
 *
 * @author: jlcui
 * @date:   2019年9月21日下午5:17:41
 *
 */
public class ResponseUtil {
	
	private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(ResponseUtil.class);


    /**
     *  使用response输出JSON
     * @param response
     * @param resultMap
     */
    public static void out(HttpServletResponse response, Map<String, Object> resultMap){

        ServletOutputStream out = null;
        try {
            response.setCharacterEncoding("UTF-8");
            response.setContentType("application/json;charset=UTF-8");
            out = response.getOutputStream();
            out.write(JSON.toJSON(resultMap).toString().getBytes());
        } catch (Exception e) {
        	e.printStackTrace();
            log.error(e + "输出JSON出错");
        } finally{
            if(out!=null){
                try {
                    out.flush();
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    
    public static Map<String, Object> resultMap(boolean flag, Integer code, String msg){

        return resultMap(flag, code, msg, null,null,false);
    }

    public static Map<String, Object> resultMap(boolean flag, Integer code, String msg, String redirectUrl,Object data,boolean resetpwd){

        Map<String, Object> resultMap = new HashMap<String, Object>(16);
        resultMap.put("success", flag);
        resultMap.put("message", msg);
        resultMap.put("code", code);
        resultMap.put("timestamp", System.currentTimeMillis());
        resultMap.put("redirectUrl",redirectUrl);
        resultMap.put(LoginUserUtil.USER_RESER_PWD,resetpwd);
        if(data!=null){
            resultMap.put("result", data);
        }
        return resultMap;
    }
    
    public static Map<String, Object> resultMap(Integer code, String msg){

        Map<String, Object> resultMap = new HashMap<String, Object>(16);
        resultMap.put("msg", msg);
        resultMap.put("ret", code);
        resultMap.put("timestamp", System.currentTimeMillis());
        return resultMap;
    }
    
    public static Map<String, Object> resultMap(boolean flag, String code, String msg){

        Map<String, Object> resultMap = new HashMap<String, Object>(16);
        resultMap.put("success", flag);
        resultMap.put("message", msg);
        resultMap.put("code", code);
        resultMap.put("timestamp", System.currentTimeMillis());
        return resultMap;
    }
    public static Map<String, Object> resultMap(boolean flag, Integer code, String msg, String redirectUrl,Object data,boolean resetpwd,String token){
       
    	Map<String, Object> resultMap = new HashMap<String, Object>(16);
        resultMap.put("success", flag);
        resultMap.put("message", msg);
        resultMap.put("code", code);
        resultMap.put("timestamp", System.currentTimeMillis());
        resultMap.put("redirectUrl",redirectUrl);
        resultMap.put("token", token);
        resultMap.put(LoginUserUtil.USER_RESER_PWD,resetpwd);
        if(data!=null){
            resultMap.put("result", data);
        }
        return resultMap;
    }
    
    public static String isOpenid(String redirectUrl,String ssoHost,IDInfo inInfo,String tgc){
    	if(!StringUtils.isEmpty(redirectUrl) && redirectUrl.contains("openid.ns")) {
			String[] requestParam = redirectUrl.split("&");
			Map<String,String> parameters = new HashMap<String, String>();
			for(String param : requestParam){
				Integer arr = param.indexOf("=");
				if(arr>0) {
					parameters.put(param.substring(0, arr), param.substring(arr+1, param.length()));
				}
			}
			ParameterList requestParameters = new ParameterList(parameters);
			redirectUrl = new OpenIdProviderService().sendSuccessfulResponse(
					requestParameters, 
					inInfo,
					ssoHost+"/ssoserver/openid/getopenid",
					tgc,
					ssoHost);
		}
    	return redirectUrl;
    }
    
    
	public static Map<String, Object> resultJwtMap(String token, String username,String msg,String stat) {

		Map<String, Object> resultMap = new HashMap<String, Object>(16);
		if (!StringUtils.isEmpty(token)) {
			resultMap.put("token", token);
		}
		if (!StringUtils.isEmpty(username)) {
			resultMap.put("username", username);
		}
		resultMap.put("message", msg);
		resultMap.put("stat", stat);
		return resultMap;
	}
	
	
	/**
	 * <p>
	 *  Description: 手机oauth认证,信息返回值构造
	 * </p>
	 * @param success
	 * @param code
	 * @param msg
	 * @return
	 *  	
	 * @author  Tianzy
	 *
	 * 2019年10月24日  上午11:28:08
	 *
	 */
	public static Map<String, Object> buildResultByMobileOauth(boolean success, String code,String msg) {

		Map<String, Object> resultMap = new HashMap<String, Object>(16);
		if(success) {
			resultMap.put("ret", 0) ;
		}else {
			resultMap.put("ret", 1) ;
		}
		resultMap.put("code", code) ;
		resultMap.put("msg", msg) ;
		
		return resultMap;
	}
	
	
}

 

posted @ 2022-02-22 15:07  JLCUI  阅读(31)  评论(0编辑  收藏  举报