Jakarta ee Java中j_安全检查完成身份验证后如何触发Bean
我对java网页环境非常陌生。最近我尝试使用Java开发一个电子商务平台 因此,我使用j_安全检查表单作为身份验证工具。身份验证完成后,已成功重新定向到所需页面 但是,由于我必须从数据库(MS SQL 2005)加载最终用户设置和信息,所以我必须在验证完成后和页面重新定向之前加载所有信息 我尝试了一些使用primefaces的方法,但无法触发加载用户信息的bean方法 我尝试的方法之一是使用oncomplete触发bean方法Jakarta ee Java中j_安全检查完成身份验证后如何触发Bean,jakarta-ee,jsf-2,primefaces,j-security-check,Jakarta Ee,Jsf 2,Primefaces,J Security Check,我对java网页环境非常陌生。最近我尝试使用Java开发一个电子商务平台 因此,我使用j_安全检查表单作为身份验证工具。身份验证完成后,已成功重新定向到所需页面 但是,由于我必须从数据库(MS SQL 2005)加载最终用户设置和信息,所以我必须在验证完成后和页面重新定向之前加载所有信息 我尝试了一些使用primefaces的方法,但无法触发加载用户信息的bean方法 我尝试的方法之一是使用oncomplete触发bean方法 <h:form id="login" prependId="f
<h:form id="login" prependId="false"
onsubmit="document.getElementById('login').action='j_security_check';">
<h:panelGrid columns="2" cellpadding="5">
<h:outputLabel for="j_username" value="Username:" />
<p:inputText value="#{loginBean.username}"
id="j_username" required="true" label="j_username" />
<h:outputLabel for="j_password" value="Password:" />
<h:inputSecret value="#{loginBean.password}"
id="j_password" required="true" label="j_password" />
<f:facet name="footer">
<p:commandButton id="loginButton" value="Login" type="submit" ajax="false"
oncomplete="#{loginBean.login()}"/>
</f:facet>
</h:panelGrid>
</h:form>
我也尝试过类似的方法,将oncomplete改为onclick和其他。最终没有任何方法是可行的
因此,我希望你们中的任何人都能给我建议,我应该如何克服这个问题
万分感谢,有几种解决方案
user
实体。如果远程用户不是null
,但user
实体是,则从DB加载它并在会话中设置它。具体回答如下:用户
实体。这在回答的第一部分中得到了具体回答:用户
实体。这在回答的第二部分中得到了具体回答:与具体问题无关,您应该使用
而不是
。那么你也不需要那种讨厌的JS黑客来改变表单的操作。谢谢你的回答,很抱歉这么长时间只回复你的答案。我尝试了你建议的第一个解决方案,但它对我无效。我添加了一个新类作为UserFilter,并且通过使用调试模式(我使用的是NetBean IDE 7.2),程序不能进入UserFilter。我是否遗漏了一些要添加的内容,以便在用户登录后程序将转到UserFilter?此外,UserService是一种用于检索我希望获得的用户设置的方法。不是吗?非常感谢您的帮助..谢谢...@WebFilter
注释仅适用于部署到Servlet 3.0兼容容器(带有Servlet 3.0兼容的web.xml
文件)上的web应用程序。否则,您必须在web.xml
中手动注册它。最后,我也无法进入WebFilter。因此,我选择@BalusC提出的方法3。这是一个很好的答案,很容易就解决了我的问题。非常感谢巴卢斯克…很抱歉我不能投票给这个答案,因为有用的答案是因为我的声誉不足以投票…无论如何,这个答案非常有用。谢谢。。