我想为我的网络应用程序创建一个登录页面。在我在互联网上找到的用于集成Spring Security和LDAP的示例项目中,我得到了它的工作。当我尝试将工作示例集成到真正的应用程序时,我总是得到NullPointerException。
答案 0 :(得分:1)
同一个类上有弹簧注释和jsf注释,所以如果你用不同的名称来引用它们(就像你很可能看到自己的答案那样),你会得到不同的实例。这不好,是原始问题的原因。很可能(并且你没有发布你的xhtml)你将xhtml中的bean称为loginViewBean
。现在你删除了AND(我怀疑)你开始将它称为loginView
,你注入了authenticationManager,然后注入了authenticationManager,而不是注入了authenticationManger的JSF托管实例。这导致了NPE。那时你得到的Spring很可能是由你配置的SpringEL解析器优先于默认的JSF解析器引起的。因此删除@ManagedBean
和@RequestScoped
并通过spring名称引用bean将以更好的方式解决问题。
另见
答案 1 :(得分:0)
解决了我的问题。
我只需要编辑这一行
@ManagedBean(name = "loginViewBean")
到
@ManagedBean
在login.xhtml文件上执行其余配置。它已经完成了。