背景:
随着前端框架发展,很多前端应用都采用Angular JS 去实现前端门户,如何利用OAM实现前端门户的单点就是一个问题了,众所周知,如果是ADF开发的程序或者是Oracle的产品需要实现SSO,相对来说简单很多,下面是用OAM 实现Angular JS 前端应用SSO单点登录的实现思路及步骤
实现思路
1、新建一个ADF应用,且启用安全性,该ADF应用中,构建一个servlet,并通过OHS进行方向代理,请求地址如: OHS:80/security/authguard;
2、通过OAM,配置 /Angular , /security 的保护资源;
3、/security/authguard 的作用是通过request.getHeader(“OAM_REMOTE_USER”)获取用户,并获取一个可供Angular应用接口使用的token,并返回一个json对象:
4、在Angular前端应用的的所有路由,都需要经过一个全局的路由守卫,该路由守卫会请求 /security/authguard 地址,尝试获取json对象,如果取到了token和username,则正常调用接口,否则跳转到登录页面
实现步骤
1、创建一个ADF应用,新建AuthguardServlet类,获取token和username,关键代码如下
2、ADF应用程序启用安全性BASIC认证,并修改web.xml配置文件如下图