JSF 2 上的 Https,用于受保护的资源和登录
Posted
技术标签:
【中文标题】JSF 2 上的 Https,用于受保护的资源和登录【英文标题】:Https on JSF 2, for protected resources and login 【发布时间】:2011-07-27 16:27:59 【问题描述】:我有一个具有 2 个属性的托管 bean:userName
和 password
(及其各自的 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 保护?