Java JSF应用程序,具有JAAS的已登录用户的动态角色
问题描述:
我有一个Primefaces应用程序,其中使用通过运行在Tomcat上的JAAS进行身份验证/授权。用户角色和安全文件夹在web.xml中定义。我的问题是,我需要在登录时更改用户角色。基本上,我需要用户单击按钮添加管理角色时,让他看到/ admin文件夹中的页面。我很长时间寻找解决方案,但没有成功。我只能看到登录的用户名和检查,如果他有这段代码的作用:Java JSF应用程序,具有JAAS的已登录用户的动态角色
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
request.getUserPrincipal();
request.isUserInRole("admin");
我找到一个答案,这个码应该工作,但我只得到空主题:
Subject.getSubject(AccessController.getContext());
是有可能在不需要再次登录的情况下更改用户角色,如果可以,我该怎么做?
答
我与自动注销固定它/登录用户:
Request()方法注销(); getRequest()。login(userName,newPassword);