【问题标题】:Does JSF manage access authorization for @ManagedBean methods?JSF 是否管理 @ManagedBean 方法的访问授权?
【发布时间】:2014-07-31 09:11:24
【问题描述】:

我有一个@ManagedBean @SessionScoped 类来表示一个用户会话。假设它有一个理论方法doHorribleThings()。通过 JSF 访问此 bean 的方法,例如,可以通过 Prime Faces p:commandButton 上的 action="#{userSession.doHorribleThings()}" 等表达式语言属性启用。

我的问题是,JSF 是否管理这种方法的访问安全性?用户是否可以执行未为他呈现的按钮的操作,例如通过发送人工 HTTP 包?还是 JSF 封装了一个跨越网络的虚拟客户端桌面,通过 GUI 设计有效地实现访问控制?

【问题讨论】:

    标签: security jsf primefaces


    【解决方案1】:

    不,据我所知,JSF 没有用于调用除 UI 之外的 managedbean 中的方法的访问安全性。

    因为如果您能够通过手动 HTTP 请求来模拟通过单击 JSP/Primefaces 按钮发生的操作,那么 JSF 容器无法识别两者之间的差异,因此对于两个请求的工作方式相同

    【讨论】:

    • 这个答案的第二部分是根本错误的。你忘了,与 HTTP 不同,JSF 是有状态的。
    • 对不起 BalusC 但我不能同意你的观点,问题是要找出 JSF 中是否有安全机制来区分通过 UI 的点击和手动 HTTP 请求,对吗?我想我还在这里。是的,我知道 JSF 是有状态的,如果我在手动构建的 HTTP 请求中添加一个有效的 JSessionID 会怎样。现在 JSF 除了处理请求别无他法!
    • OP 没有要求这样做。关键部分是:“用户是否可以执行未为他呈现的按钮的操作”
    猜你喜欢
    • 2017-10-10
    • 2011-04-04
    • 2013-04-21
    • 2012-07-12
    • 2018-05-24
    • 1970-01-01
    • 2020-01-31
    • 2023-04-02
    • 2016-05-08
    相关资源
    最近更新 更多