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){ ….. };