Oracle OAM 实现Angular JS 前端应用SSO单点登录

背景:
随着前端框架发展,很多前端应用都采用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,关键代码如下
Oracle OAM 实现Angular JS 前端应用SSO单点登录_第1张图片
2、ADF应用程序启用安全性BASIC认证,并修改web.xml配置文件如下图
Oracle OAM 实现Angular JS 前端应用SSO单点登录_第2张图片

3、Servlet返回一个JSON对象,如:
{
“code”: 200,
“data”: {
“userCode”: “zhangsan”,
“roles”: [“角色一”, “角色二”, “角色三”],
“userDisplayName”: “张三”
},
“token”: “hUIDiwIOVHsqQvisMgodKJuaQNWLvNFfJq”,
“username”: “zhangsan”
}

4、通过OAM,配置 前端应用(/Angular) 和Servlet(/security/authguard) 的资源保护 如下图;
这里写图片描述

5、在Angular前端应用的的所有路由,都需要经过一个全局的路由守卫,该路由守卫会请求 /security/authguard 地址,尝试获取json对象,如果取到了token和username,则正常调用接口,否则跳转到登录页面,实现代码如下
Oracle OAM 实现Angular JS 前端应用SSO单点登录_第3张图片

如此就实现Angular JS 前端应用SSO单点登录。

优点:依旧使用OAM的保护页,不需要额外的技术来考虑静态页到Oracle产品的单点登录实现。

有兴趣的发送邮箱到[email protected],提供在线技术支持

你可能感兴趣的:(Oracle OAM 实现Angular JS 前端应用SSO单点登录)