通过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){ ….. };
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){ ….. };
相关文章推荐
- 通过OAuth2.0方式弹出授权页面获得用户基本信息
- HttpClient和HtmlParser配合实现自动登陆系统抽取页面信息
- HttpClient和HtmlParser配合实现自动登陆系统抽取页面信息
- AnyCut | 创建桌面快捷方式 | PackageManager获得系统基本信息 | UserTask多线程
- HttpClient和HtmlParser配合实现自动登陆系统抽取页面信息
- HttpClient和HtmlParser配合实现自动登陆系统抽取页面信息
- HttpClient和HtmlParser配合实现自动登陆系统抽取页面信息
- HttpClient和HtmlParser配合实现自动登陆系统抽取页面信息
- oss获取h5页面信息,不能通过post方式获取
- jBPM与业务系统集成-通过定制Task Instance等方式实现
- java通过账号密码登陆,并获取系统信息
- 百度语音识别REST API——通过使用Http网络请求方式获得语音识别功能
- QQ的很多功能和信息可以通过web方式获得~以下链接,星号应换成你要查询的QQ号 ZT
- 通过系统广播,获得apk的packageName以后,如何仅通过packageName获取其他信息
- 通过Socket实现简单web服务器功能(接收页面请求信息)不使用Tomcat!
- jBPM与业务系统集成-通过定制Task Instance等方式实现
- 关于公布第二十一批获得计算机信息系统集成企业资质证书企业名单的通知
- sysctl方式获得unix系统的信息
- Spring MVC中redirect到一个页面,同时带些信息过去进行显示,但是不通过Session方式及URL方式
- 通过读proc方式获取Linux系统状态信息