Jsf 2 如何在ejb项目中添加或设置facesMessage
我有一个war和ejb的ear项目。使用omnifaces,我通常在war项目中设置错误消息。但在一个项目中,我使用picketlink进行身份验证,不幸的是,我需要将@picketlink注释类移动到ejb中,否则它将无法工作 然后我的身份验证类也在ejb项目中,然后当用户输入错误的凭证时,我需要显示一个本地化错误。在ejb项目中如何做到这一点 或者有没有一种方法可以让picketlink工作,将身份验证类移回war项目 示例代码: 身份验证类别:Jsf 2 如何在ejb项目中添加或设置facesMessage,jsf-2,ejb,jboss7.x,Jsf 2,Ejb,Jboss7.x,我有一个war和ejb的ear项目。使用omnifaces,我通常在war项目中设置错误消息。但在一个项目中,我使用picketlink进行身份验证,不幸的是,我需要将@picketlink注释类移动到ejb中,否则它将无法工作 然后我的身份验证类也在ejb项目中,然后当用户输入错误的凭证时,我需要显示一个本地化错误。在ejb项目中如何做到这一点 或者有没有一种方法可以让picketlink工作,将身份验证类移回war项目 示例代码: 身份验证类别: @PicketLink public cla
@PicketLink
public class PicketlinkAuthenticator extends BaseAuthenticator { }
JBoss部署文件
<?xml version='1.0' encoding='UTF-8'?>
<jboss-deployment-structure>
<ear-subdeployments-isolated>true</ear-subdeployments-isolated>
<sub-deployment name="my-project-web.war">
<dependencies>
<module name="org.picketlink" />
</dependencies>
</sub-deployment>
</jboss-deployment-structure>
真的
谢谢我找到了两种解决问题的方法: 1.)将身份验证类(picketlink)移动到web层,以便可以设置和本地化消息 2.)在ejb层中实现JPA IDMConfiguration。以及web层中的身份验证类。
请参阅github中的此项目:picketlink授权idm jpa。通过这种方式,我们创建了一个picketlink资源,我们将在web层身份验证中使用它。您不应该访问EJB中的JSF/Servlet工件,例如
FacesContext
和ServletRequest
。因此,答案应该是在战争中完成这项工作。我不做PicketLink,所以我不能详细讨论这个问题,但是如果你重新解释这个问题,并告诉更多与“不起作用”相关的症状,那么PicketLink用户可能能够回答这个问题。嗨,Balus,谢谢你的提示。我已经找到了一个解决方案,虽然它不是我真正想要的。我将补充一个单独的答案。