gpt4 book ai didi

apache - 如果用户已经登录,则 j_security_check 不可用

转载 作者:行者123 更新时间:2023-11-28 21:49:08 24 4
gpt4 key购买 nike

Apache tomcat 版本:6.0.20

如果用户已经登录,并且他尝试从登录页面再次登录,则会遇到 j_security_check 不可用错误。这是正常行为还是我必须做些什么?

实际上我有不同的用户角色来访问不同的页面,当拒绝特定用户访问页面时,我想将他重定向到登录页面,在那里他可以使用相应的凭据登录。

最佳答案

这种行为是正常的:servlet 规范仅在用户请求 protected 资源且用户尚未提供凭据时列出容器管理的身份验证(即登录)过程。所有其他场景均未定义,包括您的场景。

如果您想捕获“禁止”条件,您可以在 WEB-INF/web.xml 中使用 映射将用户发送到您想要的任何位置,包括登录页面。请记住,容器只会在满足上述条件后才接受登录,因此您可能必须先将用户注销(通过终止用户 session )。

我可能会推荐一个“禁止”页面,上面写着“您无权访问此资源。如果您想以其他用户身份登录以访问它,请单击 [HERE]”,其中[HERE] 是指向 servlet 的链接,它终止用户的 session ,然后重定向到用户试图访问的资源。这将导致容器请求身份验证(即呈现登录表单)、验证凭据并将用户发送到所需资源。

如果您使用容器(和 webapp)以及 servlet 规范的 3.0 版,则有一个新的 HttpServletRequest.login() 方法可用于以编程方式将用户登录到您的 webapp。您也许可以使用它来代替终止 session 并执行所有这些重定向...相反,您可以自己收集用户名和密码,然后让容器为您进行登录。

关于apache - 如果用户已经登录,则 j_security_check 不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10828280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com