开发 OpenAM Java 客户端应用
在 Agent 安装完成之后,可以使用自带的 agentsample 应用登录。这里主要讲一下如何在 SSO
之后拿到 SSOToken,以及相关 Session 信息的获取。完整的代码在 Github。
Agent 的安装在上一篇已经介绍,这里需要先配置一个 Policies,然后在客户端项目 web.xml 中加入
<filter>
<filter-name>Agent</filter-name>
<display-name>Agent</display-name>
<description>SJS Access Manager Tomcat Policy Agent Filter</description>
<filter-class>com.sun.identity.agents.filter.AmAgentFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Agent</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
在项目中获取 token 相关内容
SSOTokenManager manager = SSOTokenManager.getInstance();
SSOToken token = manager.createSSOToken(request);
if (manager.isValidToken(token)) {
java.security.Principal principal = token.getPrincipal();
out.println("SSOToken Principal name: " + principal.getName());
out.println("<br />");
}
分别部署两个相同的应用到 Tomcat,取名 Client1,Client2。访问任意应用,另外一个应用也自动登录。