⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 token2user.java

📁 sso呵呵
💻 JAVA
字号:
package com.mdcl.mocha.jlcmcc.sso;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;

import com.mdcl.mocha.bpm.sdk.ServiceManager;
import com.mdcl.mocha.bpm.sdk.license.ExpiryException;
import com.mdcl.mocha.bpm.sdk.license.LicenseException;
import com.mdcl.mocha.bpm.sdk.license.NotFoundModuleException;
import com.mdcl.mocha.jlcmcc.configmanager.ConfigManager;

/**
 * @author mdcl
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class Token2User {

	  public Token2User(){

	  }

	  /**
	   * 根据获得的正确Token数据返回需要的数据的String
	   * @return
	   * @throws Exception
	   */
	  public static String getTokenValue(String token,String server)  {

	    String TValue = null;
	    StringBuffer buf = new StringBuffer();
	    String PortalUrl=null;
		ConfigManager cm;
       	try {
			cm = (ConfigManager)ServiceManager.getInstance().getService(ConfigManager.class);
			if (server != null && !server.equals("")) {
				PortalUrl = "http://" + server + ".jlmc.com/amserver/sessionservice";
			}else {
				PortalUrl = cm.getPath("jlcmcc-serviceinf.properties","sso.PORTALURL");
			}
//			PortalUrl = "http://10.161.32.17:80/amserver/sessionservice";
		} catch (NotFoundModuleException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ExpiryException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (LicenseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	    try {
	      String T2D = replaceString(token);
	      URL url = new URL(PortalUrl);

	      URLConnection uc = url.openConnection();
	      uc.setDoOutput(true);
	      //------------发起对Servlet 的调用--------------------
	      buf.append("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><RequestSet vers=\"1.0\" svcid=\"Session\" reqid=\"0\"><Request><![CDATA[<SessionRequest ver=\"1.0\" reqid=\"0\"><GetSession reset=\"true\"><SessionID>");
	      buf.append(T2D);
	      buf.append("</SessionID></GetSession></SessionRequest>]]></Request></RequestSet>");
	      OutputStreamWriter out = new OutputStreamWriter(uc.getOutputStream(), "8859_1");
	      out.write(buf.toString());
	      out.flush();
	      out.close();
	      //----------发起调用结束,准备接受Servlet 的返回内容---------
	      BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
	      String line = "";
	      while ( (line = in.readLine()) != null) {
	        int uid_p  =  line.indexOf("uid=");
	        int ou_p   =  line.indexOf("ou=");

	        if(ou_p>uid_p && uid_p>1){
	           String tmp = line.substring(uid_p,ou_p);
	           TValue = tmp.substring(4,tmp.length()-1);
	           break;
	        }
	      }
	      in.close();
	      return TValue;
	    }
	    catch (Exception e) {

//	      System.out.println(e.getMessage());
	      return null;
	    }
	  }

	  /**
	   * 根据获得的Token数据返回需要的正确Token数据的Strig
	   * @return
	   * @throws Exception
	   */

	  private static String replaceString(String tID) throws Exception {
	    String tokenID = "";
	    String[] orig_chars = new String[]{
	    		"%21","%22","%23","%24","%25","%26","%27",
	    		"%28","%29","%2A","%2b","%2B","%2C","%2D","%2E","%2F",
				"%3A","%3B","%3C","%3D","%3E","%3F","%40",
				"%5B","%5C","%5D","%5E","%5F","%60",
	    		"%7B","%7C","%7D","%7E"};
	    String[] chars =  new String[]{
	    		"!","\"","#","$","%","&","'",
	    		"(",")","*","+","+",",","-",".","/",
				":",";","<","=",">","?","@",
				"[","\\","]","^","_","`",
	    		"{","|","}","~"};
	    try {
	      tokenID = tID;
	      for(int i=0;i<orig_chars.length;i++)
	      {
	      	String aoc = orig_chars[i];//编码
	      	String ac = chars[i];//字符
	      	int is = tokenID.indexOf(aoc);
	      	while (is != -1) {
		        tokenID = tokenID.substring(0, is) + ac + tokenID.substring(is + 3);
		        is = tokenID.indexOf(aoc);
		    }
	      }
	      return tokenID;
	    }
	    catch (Exception ex) {
	      //System.out.println("replaceString error, Exception = " + ex.getMessage());
	      throw ex;
	    }
	  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -