您的位置:首页 > 编程语言 > PHP开发

通过portlet主动请求方式获得和portal通过LTPA方式集成的系统的登陆后某个页面的特定信息(portal SSO)

2008-05-12 17:06 555 查看
public CredentialVaultService initConcrete(PortletSettings settings) throws UnavailableException {
try {
CredentialVaultService vaultService = (CredentialVaultService) getPortletConfig().getContext().getService(CredentialVaultService.class); return vaultService
} catch (Exception e) {
return null;
}
}
public Info getSomeInfoFromOtherSystem(PortletRequest request){
CredentialVaultService vaultService=initConcrete(request.getPortletSettings());
Subject subject = vaultService.getUserSubject(request);

Object[] temp = subject.getPrivateCredentials(LTPATokenCredential.class).toArray();
LTPATokenCredential ltpaToken = (LTPATokenCredential) temp[0];
System.out.println("LTPAToken: " + ltpaToken.getTokenString());
// Create the LTPA Cookie in the Header
String cookie = "LtpaToken=" + ltpaToken.getTokenString();
// 创建一个需要获得相关信息的目标页面(登陆后)
URL url = new URL("http://oatest.china.com/PSOA/ggfb.nsf/homepageviewforportal?OpenView");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("cookie", cookie);
con.connect();

//通过LTPATOKEN 可以得到成功登陆后的页面
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"GBK"));
String line = "";
while (line != null) {
line = br.readLine();

}
br.close();
con.disconnect();
return getSomeInfoFromHtml(line);
}
catch (Exception e) {
e.printStackTrace();
}
}
/**
从登陆后的页面中截取所需要的信息
**/
Public Info getSomeInfoFromHtml(String html){ ….. };
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐