一尘不染

如何在JSP / Servlet中获得用户角色

jsp

有没有办法用用户在JSP或Servlet中扮演的角色来获取String []?

我知道request.isUserInRole(“ role1”),但我也想知道用户的所有角色。

我搜索了servlet源,这似乎是不可能的,但是这对我来说似乎很奇怪。

所以…有什么想法吗?


阅读 294

收藏
2020-06-08

共1个答案

一尘不染

阅读所有可能的角色,或对列表进行硬编码。然后在其上运行isUserInRole对其进行迭代,并构建用户所在角色的列表,然后将该列表转换为数组。

String[] allRoles = {"1","2","3"};
HttpServletRequest request = ... (or from method argument)
List userRoles = new ArrayList(allRoles.length);
for(String role : allRoles) {
 if(request.isUserInRole(role)) { 
  userRoles.add(role);
 }
}

// I forgot the exact syntax for list.toArray so this is prob wrong here
return userRoles.toArray(String[].class);
2020-06-08