将 PrimeFaces 与 JSF 一起使用时 Shiro 重定向到错误的位置

     2023-02-27     119

关键词:

【中文标题】将 PrimeFaces 与 JSF 一起使用时 Shiro 重定向到错误的位置【英文标题】:Shiro redirecting to wrong place when using PrimeFaces with JSF 【发布时间】:2012-12-10 10:20:34 【问题描述】:

此 Web 应用程序可与 Shiro 和 JSF 一起使用。我添加了 PrimeFaces,但我遇到了登录重定向问题。

预期行为:

    导航到需要认证的网址 重定向到登录页面 登录重定向回原来的页面

primfaces的行为

    导航到需要认证的网址 重定向到登录页面 登录后重定向到 javax.faces.resource/theme.css?ln=primefaces-aristo

我通过在我的shiro.ini 文件中捕获请求参数来登录用户

# name of request parameter with username; if not present filter assumes 'username'
authc.usernameParam = login:username
# name of request parameter with password; if not present filter assumes 'password'
authc.passwordParam = login:password
# does the user wish to be remembered?; if not present filter assumes 'rememberMe'
authc.rememberMeParam = login:remembered

我将其修改为使用PassThruAuthenticationFilter,登录请求由我的Bean 处理,但这仍然会产生相同的错误。 bean登录方式

AuthenticationToken token =  new UsernamePasswordToken(username, password);
Subject currentUser = SecurityUtils.getSubject();
currentUser.login(token);
ServletRequest request = (ServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
ServletResponse response = (ServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
WebUtils.redirectToSavedRequest(request, response, "index.xhtml");

我的登录 Bean 是@RequestScoped

【问题讨论】:

【参考方案1】:

这个问题的根本原因是我的所有视图都在同一个目录中。我已将 shiro 配置为要求对根目录 /* 中的所有内容进行身份验证

显示登录页面的原因是因为它是一个“特殊”情况,它被定义为 shiro 配置中的登录页面。加载此页面后,浏览器对 css 和 js 文件进行了额外请求,这就是此页面上没有主题的原因。

鉴于WebUtils.redirectToSavedRequest(request, response, "index.xhtml"); 的行为,shiro 似乎只是保存了收到的最后一个不是登录页面的请求。

【讨论】:

我认为这是我向shiro社区shiro-user.582556.n2.nabble.com/…987654321@ shiro 社区没有回应,创建了一个错误issues.apache.org/jira/browse/SHIRO-406

Primefaces 链接打开电子邮件撰写窗口

】Primefaces链接打开电子邮件撰写窗口【英文标题】:Primefaceslinkopenanemailcomposewindow【发布时间】:2012-02-0402:12:18【问题描述】:使用JSF-Primefaces如何在dataTable列上为emailId创建链接,以便onclick将打开电子邮件撰写窗口?我将Primefac... 查看详情

关于 JSF 2.0 自定义组件和 Primefaces 的帮助

】关于JSF2.0自定义组件和Primefaces的帮助【英文标题】:HelponJSF2.0CustomComponentsandPrimefaces【发布时间】:2011-11-1120:17:45【问题描述】:我需要使用jsf2.0自定义组件动态创建面板。面板中的控件将从xml动态读取并在选择相应对象时呈... 查看详情

Primefaces FileUpload 与 PrettyFaces 和 JSF 2.2.3

】PrimefacesFileUpload与PrettyFaces和JSF2.2.3【英文标题】:PrimefacesFileUploadwithPrettyFacesandJSF2.2.3【发布时间】:2013-12-2719:48:04【问题描述】:我在使用<p:fileupload>的页面上遇到了PrettyFaces的一些问题。当我在页面上禁用PrettyFaces... 查看详情

如何学习 primefaces javascript API?

】如何学习primefacesjavascriptAPI?【英文标题】:howtolearntheprimefacesjavascriptAPI?【发布时间】:2016-12-3123:18:21【问题描述】:在使用PrimeFaces5.3学习JSF-2.2时,我遇到了javascript事件处理程序,例如与onComplete属性一起使用的事件处理程... 查看详情

JSF:将页面动态包含到primefaces对话框中

】JSF:将页面动态包含到primefaces对话框中【英文标题】:JSF:Dynamicincludepageintoprimefacesdialog【发布时间】:2014-07-2214:00:33【问题描述】:我想使用ui:include包含来自另一个页面的primefaces对话框的内容。包含的页面必须根据用户单击... 查看详情

JSF Primefaces 在布局问题中使用菜单栏

】JSFPrimefaces在布局问题中使用菜单栏【英文标题】:JSFPrimefacesusingmenubarinLayoutissue【发布时间】:2013-04-0105:18:28【问题描述】:我的JSF页面使用布局时遇到问题。我试图将我的菜单栏定位在北定位布局单元的标题部分。它正确定... 查看详情

使用 JSF 2.0 和 Primefaces 设置项目

】使用JSF2.0和Primefaces设置项目【英文标题】:SetupProjectwithJSF2.0&PrimeFaces【发布时间】:2012-09-0605:54:30【问题描述】:我正在尝试使用主要面孔库设置JSF项目当我运行此设置时,它显示以下错误org.apache.jasper.JasperException:javax.ser... 查看详情

使用jsf(primefaces)将数据从excel复制并粘贴到datatable

我想使用JSF(Primefaces)将数据从Excel复制并粘贴到Datatable。请建议我实现复制和粘贴的可能性。答案您可以侦听dataTableprimefaces对象的粘贴事件并从事件对象获取剪贴板数据,将数据格式化为JSONobject(在我使用JSONArray的示例中)... 查看详情

java示例代码_将上传的文件保存在表单中,直到使用jsf-2和primefaces-3.4提交

java示例代码_将上传的文件保存在表单中,直到使用jsf-2和primefaces-3.4提交 查看详情

jsf/primefaces使用selectonemenu将列表中的项目关联起来

在JSF应用程序中,我有一个包含3000个活动的列表(JPA实体活动)。最终用户需要将这些活动关联在称为作业的组中(JPA实体作业)。多个用户可以声明某项活动。我正在尝试在数据表列表上使用p:selectOneMenu,以使登录用户能够... 查看详情

jsf/primefaces-如何显示自定义验证器的消息,但不显示同一组件上的必需验证

我有一个使用PrimeFaces的JSF2实现。我使用的是<p:selectOneRadio/>组件。当用户在无线电组件中选择“否”时,我想显示自定义消息。我已经为此创建了一个自定义验证器,并且与消息组件一起工作正常。但是,该组件也是必需的... 查看详情

JSF 2.0 更新 primefaces 对话框第一次不起作用

】JSF2.0更新primefaces对话框第一次不起作用【英文标题】:JSF2.0Updateaprimefacesdialognotworkingthefirsttime【发布时间】:2011-10-1301:46:43【问题描述】:我有一个要求用户输入文本的简单表单。然后,当用户单击链接时,将显示一个对话... 查看详情

提交 2 个表单时 JSF ViewState 未更新

...述】:我在使用JSF2时遇到了一个问题。我将Mojarra2.1.14与Primefaces3.1.4一起使用我有一个包含2个表单的页面:formA和formB。这两个表单在隐藏的输入字段中分别包含ViewState。<h:form 查看详情

带有 JSF 项目的组件库

...题描述】:我期待使用带有JSF的组件库(可能是richfaces或primefaces)来开发社交应用程序的前端。我需要知道:1.)除了为所有组件选择一个主题之外,独立自定义每个组件的外观的可能性有多大。是否可以将CSS与这些组件一起使... 查看详情

JSF 2.0 无法从 primefaces 呈现对话框

】JSF2.0无法从primefaces呈现对话框【英文标题】:JSF2.0can\'trenderdialogfromprimefaces【发布时间】:2011-07-2606:32:14【问题描述】:最近我在使用primefaces组件时遇到了很多问题,我不知道为什么。我使用glassfishV3.0,我的primefaces版本是2.2... 查看详情

请问在jsp中怎么使用primefaces(详细点,包括配置!)

第一:完全不可以:因为两者不是一个妈妈生的,一个jsp.一个jsf;它只能和jsf一起用,它就是一个jsf的组件库,我用过,如果你去用netbeans那么在用jsf项目的就会有是否选择primface,它帮你搞好了,去用看样子是新手,先学习jsf吧... 查看详情

如何将 PanelGrid 对齐到中心? JSF-Primefaces

】如何将PanelGrid对齐到中心?JSF-Primefaces【英文标题】:HowtoalignPanelGridtocenter?JSF-Primefaces【发布时间】:2013-03-1710:42:44【问题描述】:我知道有很多关于这个问题的问题,但没有一个适合我。我需要将PanelGrid对齐到中心(水平)... 查看详情

jsf2 primefaces 通知栏

】jsf2primefaces通知栏【英文标题】:jsf2primefacesnotificationbar【发布时间】:2015-04-2519:57:33【问题描述】:我想在我的jsf页面中有通知栏。当我使用此示例代码时,它可以工作<p:notificationBarposition="top"effect="slide"styleClass="top"widgetVar... 查看详情