JSF 2 上的 Https,用于受保护的资源和登录

Posted

技术标签:

【中文标题】JSF 2 上的 Https,用于受保护的资源和登录【英文标题】:Https on JSF 2, for protected resources and login 【发布时间】:2011-07-27 16:27:59 【问题描述】:

我有一个具有 2 个属性的托管 bean:userNamepassword(及其各自的 getter 和 setter 方法),以及一个访问数据库以验证登录凭据的 login() 方法。

我的问题是,当用户点击“登录”按钮时,动作必须通过https协议。如何使用 JSF 2 实现这一点?

另外,如果我想保护一些 Faces(在 https 协议下),我该如何实现?是否有过滤器可以让我这样做?

提前致谢。

【问题讨论】:

【参考方案1】:

您可以在应用程序的 web.xml 中定义安全约束:

<security-constraint>
   <web-resource-collection>
      <web-resource-name>SecureConnection</web-resource-name>
        <url-pattern>*</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
      </web-resource-collection>
      <auth-constraint/>
      <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
      </user-data-constraint>
</security-constraint>

调整 url 模式以包含您的登录页面和所有其他安全页面。 https 的使用由用户数据约束定义。

来自Java EE tutorial:

如果您指定 CONFIDENTIAL 或 INTEGRAL 作为安全约束,它 通常意味着使用 SSL 是 必需并适用于所有请求 与网络中的 URL 模式匹配 资源收集,不仅仅是为了 登录对话框。

如果您编写了自己的 login() 方法并使用 Glassfish,则可以查看使用 JDBCRealm 作为替代登录方法的基于容器的身份验证。

【讨论】:

以上是关于JSF 2 上的 Https,用于受保护的资源和登录的主要内容,如果未能解决你的问题,请参考以下文章

<protected-views> 是不是应该用于 JSF 2.2 CSRF 保护?

Spring oauth2 指定受保护和不受保护的资源

jsf spring安全访问被拒绝认证登录

jsf 2.0 上的 JSF1064“无法找到或提供资源”警告

从 AJAX 获取受 SSO 保护的 XHR 资源

华为手机上的“受保护的应用程序”设置,以及如何处理