gpt4 book ai didi

JSF 和容器管理的安全性

转载 作者:行者123 更新时间:2023-12-04 18:19:36 25 4
gpt4 key购买 nike

我有一个 JSF 登录页面,当用户直接导航到它时效果很好。

但是,如果用户在未先登录的情况下尝试访问 protected 页面,则容器会正确拦截此操作并将其扔到登录页面。但是,因为登录页面是 JSF,所以存在问题。发送给用户的是原始 JSF 页面,完全未经 FacesServlet 处理。

片段示例 - 在未登录的情况下访问 protected 页面后发送到浏览器:

<ui:define name="body">
<p:growl id="growl" showDetail="true" sticky="true" />
<div class="mytext">Please login to the application...</div>

<form method="POST" action="j_security_check">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="right">Username:&nbsp;</td>
<td>
<input type="text" name="j_username"/>
</td>
</tr>
<tr>
<td align="right">Password:&nbsp;</td>
<td>
<input type="password" name="j_password"/>
</td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Login"/>
</td>
</tr>
</table>
</form>
</ui:define>

有没有办法强制容器通过 FacesServlet 处理器呈现响应,而不是简单地返回原始 JSF 文件?

最佳答案

更改 <form-login-page> 的 URL匹配 FacesServlet 的 URL 模式,或者,更好的是,更改 FacesServlet 的 URL 模式至*.xhtml这样最终用户就永远无法通过故意更改浏览器地址栏中的 URL 来查看任何页面的原始 JSF 源代码。

关于JSF 和容器管理的安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10941548/

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