gpt4 book ai didi

security - 用户登录后如何使用 JSF 2 限制对某些页面的访问?

转载 作者:行者123 更新时间:2023-12-04 14:29:13 24 4
gpt4 key购买 nike

我想根据用户访问权限限制对某些 JSF 页面的访问。如何在 JSF 中做到这一点?我找到了两个链接:Restricting users from accessing pages by directly changing the URL in JSF .
但是答案没有提到如何阻止访问页面。与 response.sendError ?
第二个链接:JSF: How control access and rights in JSF?

另外什么是最好的使用 PhaseListener 或使用 ServletFilter ?

最佳答案

But the answer didn't mention how to block access to page. With response.sendError ?


这完全取决于您的选择。这一切都取决于您的业务需求。您想重定向到登录页面吗?就这样做吧!
response.sendRedirect(request.getContextPath() + "/login.xhtml");
或者,你想显示一个可怕的和用户不友好的 HTTP 401 错误?就这样做吧!
response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
至少,除了通过 chain.doFilter() 继续对受限资源的请求之外,还有其他任何事情。 .否则,整个限制将毫无意义。

Also what is the best to use PhaseListener or to use ServletFilter ?


servlet 过滤器旨在拦截 HTTP 请求,并且仅在 FacesServlet 之前运行一次。被调用,因此能够 Hook 非 JSF 请求,具体取决于 URL 模式。
阶段监听器旨在拦截每个 JSF 阶段(有 6 个)的前后条件,并在 JSF 请求期间运行 2 至 12 次,具体取决于当前的 JSF 阶段。
你的常识是什么?对于允许/阻止 HTTP 请求(因此不是 JSF 阶段)的非常简单的工作,哪一个看起来更简单有效?只需为工作使用正确的工具。

如果您感兴趣,这里有一个相当完整的授权过滤器示例: Authorization redirect on session expiration does not work on submitting a JSF form, page stays the same .
也可以看看:
  • How to handle authentication/authorization with users in a database?
  • 关于security - 用户登录后如何使用 JSF 2 限制对某些页面的访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18368368/

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