将用户和组从 WLS 获取到自定义页面
Getting users and groups form WLS to Custom Page
我在 WLS 12c 中使用 SQL 身份验证器在安全领域配置了用户和组。
例如:ADMIN 是用户,MANAGER 是 WLS 中的组,我已将 ADMIN 用户映射到 MANAGER 组。
当我使用 wls 用户 (ie.ADMIN) 登录时,它会导航到相应的自定义页面,我可以使用以下 EL #{securityContext.userName}
获取用户
或 java 代码:
ADFContext adfCtx = ADFContext.getCurrent();
SecurityContext secCntx = adfCtx.getSecurityContext();
String user = secCntx.getUserPrincipal().getName();
String userName = secCntx.getUserName();
String[] Roles = secCntx.getUserRoles();
同样,我想捕获当前登录用户的组,即。 ADMIN 和输出应为 MANAGER。
我使用 EL 作为 #{securityContext.userRoles}
获取角色,请在登录时帮助我获取用户组。
预期的 OUTPUT 应该是 MANAGER 而我的输出是 NULL。
您得到 NULL 输出,因为 securityContext 在 ADF 绑定中不包含名为 "userRoles" 的对象。
securityContext el 表达式包含以下值:
- 已验证
- 地区可见
- taskflowViewable
- userGrantedPermission
- userGrantedRessource
- userInAllRoles
- 用户角色
- 用户名
因为您似乎知道所有预期的角色,您可以显示 MANAGER 执行类似的操作:
<af:outputText value="{securityContext.userInAllRoles[‘MANAGER’]?'MANAGER':'NOT MANAGER'}" id="ot_1"/>
或使用渲染属性:
<af:outputText rendered="{securityContext.userInAllRoles[‘MANAGER’]}" value="MANAGER" id="ot_1"/>
<af:outputText rendered="{securityContext.userInAllRoles[‘EMPLOYEE’]}" value="EMPLOYEE" id="ot_2"/>
...
旁注:
- userInAllRoles['ROLE1','ROLE2'] return 如果用户有 ROLE1 和 ROLE2
,则为真
- userInRole['ROLE1','ROLE2'] return 如果用户具有 ROLE1 或 ROLE2
,则为真
我在 WLS 12c 中使用 SQL 身份验证器在安全领域配置了用户和组。
例如:ADMIN 是用户,MANAGER 是 WLS 中的组,我已将 ADMIN 用户映射到 MANAGER 组。
当我使用 wls 用户 (ie.ADMIN) 登录时,它会导航到相应的自定义页面,我可以使用以下 EL #{securityContext.userName}
获取用户
或 java 代码:
ADFContext adfCtx = ADFContext.getCurrent();
SecurityContext secCntx = adfCtx.getSecurityContext();
String user = secCntx.getUserPrincipal().getName();
String userName = secCntx.getUserName();
String[] Roles = secCntx.getUserRoles();
同样,我想捕获当前登录用户的组,即。 ADMIN 和输出应为 MANAGER。
我使用 EL 作为 #{securityContext.userRoles}
获取角色,请在登录时帮助我获取用户组。
预期的 OUTPUT 应该是 MANAGER 而我的输出是 NULL。
您得到 NULL 输出,因为 securityContext 在 ADF 绑定中不包含名为 "userRoles" 的对象。
securityContext el 表达式包含以下值:
- 已验证
- 地区可见
- taskflowViewable
- userGrantedPermission
- userGrantedRessource
- userInAllRoles
- 用户角色
- 用户名
因为您似乎知道所有预期的角色,您可以显示 MANAGER 执行类似的操作:
<af:outputText value="{securityContext.userInAllRoles[‘MANAGER’]?'MANAGER':'NOT MANAGER'}" id="ot_1"/>
或使用渲染属性:
<af:outputText rendered="{securityContext.userInAllRoles[‘MANAGER’]}" value="MANAGER" id="ot_1"/>
<af:outputText rendered="{securityContext.userInAllRoles[‘EMPLOYEE’]}" value="EMPLOYEE" id="ot_2"/>
...
旁注:
- userInAllRoles['ROLE1','ROLE2'] return 如果用户有 ROLE1 和 ROLE2 ,则为真
- userInRole['ROLE1','ROLE2'] return 如果用户具有 ROLE1 或 ROLE2 ,则为真