All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.eshore.uas.auth.OauthClient Maven / Gradle / Ivy

There is a newer version: 2.0.3
Show newest version
package com.eshore.uas.auth;

import java.util.HashMap;
import java.util.Map;

import com.eshore.khala.utils.LRUCache;
import com.eshore.tools.HTTP;
import com.eshore.tools.SimpleJson;
import com.eshore.uas.auth.vo.OathLogin;
import com.eshore.uas.extensions.Glue;

public class OauthClient {
	LRUCache cache = new LRUCache(10000);
	//LRUCache tokens = new LRUCache(10000);
	
	private static String server;
	
	public static void setServer(String url) {
		server=url;
	}
	
	static long duration=3600*12*1000;
	public String login(OathLogin login) {
		HTTP http = new HTTP();
		String str= http.url(server+"?e=auth")
		.postForm(login).asString();
		try {
		SimpleJson sj = new SimpleJson();
		sj.fromString(str);
		Map data = (Map) sj.getRoot();
		String code =data.get("code");
		if(!"0".equals(code))return null;
		String hash =data.get("hash");
		
		Devel dev = new Devel();
		dev.setHash(hash);
		dev.setKey(login.getApp_id());
		dev.setId(data.get("developerId"));
		String token = Glue.getOAuth().genToken(hash, login.getApp_id());
		cache.put(login.getApp_id(), dev,duration);
		return token;
		}catch(Exception e) {
			e.printStackTrace();
			//System.out.println("===="+str);
			return null;
		}
		
	}
	
	public EWTTicket check(String token) {
		EWTTicket tk = new EWTTicket();
		String appId= Glue.getOAuth().getAppId(token);
		if(appId==null)return tk;
		Devel dev =cache.get(appId);
		if(dev!=null&&dev.getHash()!=null) {
			tk.setDevId(dev.getId());
			tk.setAppId(dev.getKey());
			tk.setPass(Glue.getOAuth().checkToken(token, dev.getHash()));
			if(tk.pass)
			return tk;	
		}
		HTTP http = new HTTP();
		Map param = new HashMap();
		param.put("token", token);
		String str= http.url(server+"?e=auth")
		.postForm(param).asString();
		SimpleJson sj = new SimpleJson();
		sj.fromString(str);
		Map data = (Map) sj.getRoot();
		String code =data.get("code");
		if(!"0".equals(code)) {
			tk.setPass(false);
			return tk;
		}
		tk.setPass(true);
		//tokens.put(token, dev,duration);
		dev= new Devel();
		dev.setHash(data.get("hash"));
		dev.setKey(appId);
		dev.setId(data.get("developerId"));
		cache.put(appId, dev,duration);
		tk.setAppId(appId);
		tk.setDevId(dev.getId());
		return tk;
		
	}
	
public class EWTTicket{
		private String appId;
		private String devId;
		private boolean pass;
		public String getAppId() {
			return appId;
		}
		public void setAppId(String appId) {
			this.appId = appId;
		}
		public String getDevId() {
			return devId;
		}
		public void setDevId(String devId) {
			this.devId = devId;
		}
		public boolean isPass() {
			return pass;
		}
		public void setPass(boolean pass) {
			this.pass = pass;
		}
		
		
	}	

}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy