Liferay 7.3 LoginPortlet上不需要的CSRF验证



用户使用门户LoginPortlet执行登录后,登录不成功,并在日志中打印警告:

User 0 is not allowed to access URL http://localhost:8080/web/guest/login and portlet com_liferay_login_web_portlet_LoginPortlet: User 0 did not provide a valid CSRF token for com.liferay.portlet.SecurityPortletContainerWrapper

之后第二次登录后,登录正常。只有在登录页面打开几分钟并且auth令牌无效时,才会出现问题。这基本上是可以的,但是门户配置portlet.add.default.resource.check.whitelist对LoginPortlet有一个排除。但这个白名单似乎并没有避免不必要的检查。有没有其他地方可以避免CSRF检查LoginPortlet?

我无法重现此问题,我使用此服务器进行测试:
Liferay Community Edition Portal 7.3.5 CE GA6

以下是我的步骤,请让我知道我应该更改什么来体验此问题:

  1. 我将这个zip文件提取到我的ubuntu linux电脑中:
    liferay-ce-portal-tomcat-7.3.5-ga6-20200930172312275.tar.gz
  2. 启动服务器并完成第一次设置
  3. 我重新启动了服务器,并在Opera浏览器中访问了localhost:8080
  4. 等待了7分钟
  5. 我点击了";登录";在右上角
  6. 再次等待5分钟
  7. 我输入了我的凭据

    结果:
    我可以成功登录,CSRF没有错误

    有几个建议:
    >
    A。在以下位置搜索CSRF:
    https://github.com/liferay/liferay-portal/blob/master/portal-impl/src/portal.properties
    看看你是否能找到一个解决问题的属性
    这样的属性可以是:
    auth.token.impl=com.liferay.portal.security.auth.SessionAuthToken
    auth.token.check.enable=false
    uth.token.ignore.origgins

    B.也许你可以尝试在你的portal-ext.properties中设置这样的属性:
    portlet.add.default.resource.check.whitelist.actions=/login/login

    C在Liferay Jira中搜索,例如,这张票谈到了类似的内容:
    https://issues.liferay.com/browse/LPS-129976

相关内容

  • 没有找到相关文章

最新更新