我在 glassfish-4 中有大约 3 个应用程序,使用 SingleSignOn 来保证安全性,第 4 个应用程序用于“访问控制”,所有应用程序的所有用户都登录并被重定向到用户有权访问的任何应用程序。直到现在我需要添加第 5 个应用程序之前,一切都运行良好。第 5 个应用程序拒绝与其他应用程序合作。这是我在所有应用程序中第一个使用的代码片段:
@Named
@SessionScoped
public class SecurityController
// unnecessary codes ommitted
String email = FacesContext.getCurrentInstance().getExternalContext().getRemoteUser();
if(email==null){
FacesContext.getCurrentInstance().getExternalContext()
.redirect("http://localhost:8080/AccessControl/login.xhtml")
}
这在所有前 3 个应用程序中都对我有用,但在最后一个应用程序中不起作用。我正在使用带有 primefaces 5.0 的标准 Java EE 6。
这是我得到的错误:
Warning: Servlet.service() for servlet Faces Servlet threw exception
java.lang.NullPointerException
at com.sun.faces.context.flash.ELFlash.doLastPhaseActions(ELFlash.java:644)
at com.sun.faces.context.flash.ELFlash.doPostPhaseActions(ELFlash.java:582)
at com.sun.faces.context.ExternalContextImpl.doLastPhaseActions(ExternalContextImpl.java:1081)
at com.sun.faces.context.ExternalContextImpl.redirect(ExternalContextImpl.java:643)
任何建议都将不胜感激,因为这会推迟很长一段时间的生产。谢谢