📄 token2user.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 + -