我有一个 Primefaces 应用程序,其中通过在 Tomcat 上运行的 JAAS 使用身份验证/授权。用户角色和安全文件夹在 web.xml 中定义。我的问题是,我需要在他登录时更改用户角色。基本上,当用户单击按钮添加他的管理员角色时,我需要让他看到 /admin 文件夹中的页面。我一直在寻找解决方案,但没有成功。我只能看到记录的用户名并检查他是否具有此代码的角色:
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
request.getUserPrincipal();
request.isUserInRole("admin");
我找到了一个答案,该代码应该可以工作,但我只得到空主题:
Subject.getSubject(AccessController.getContext());
是否可以更改用户角色而无需再次登录,如果可以,我该怎么做?