jsf 安全约束在用户未登录时保护链接?

2024-03-15

我有一个定义了安全约束的 JSF2 (GlassFish 3.0) 应用程序(示例如下)。我的问题是,我有一个“注册”链接,当用户登录时不应访问该链接。

也就是说,如果他们尝试点击“/signup.jsf”,如果他们已登录,他们应该能够访问;所以如果他们有任何角色,他们应该not能够看到页面。

有没有办法做这样的“反向”安全约束?

欢迎任何建议,谢谢! 抢

我的应用程序中的示例约束,以防有用:

<security-constraint>
    <display-name>profileForm</display-name>
    <web-resource-collection>
        <web-resource-name>profileForm</web-resource-name>
        <url-pattern>/profileForm.jsf</url-pattern>
        <http-method>DELETE</http-method>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
        <http-method>PUT</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>GENERAL</role-name>
        <role-name>ADMIN</role-name>
        <role-name>STAFF</role-name>
        <role-name>INSTRUCTOR</role-name>
    </auth-constraint>
    <user-data-constraint>
        <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
</security-constraint>

只需创建一个Filter https://stackoverflow.com/tags/servlet-filters/info正是这样做的。

@WebFilter(urlPatterns={"/signup.jsf"})
public class SignupFilter implements Filter {
    
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        // ...

        if (userIsLoggedIn) {
            ((HttpServletResponse) response).sendRedirect("already_loggedin.jsf");
        } else {
            chain.doFilter(request, response);
        }
    }

    // ...
}

标准 JSF 实际上没有提供任何关于授权/身份验证的开箱即用的东西。 JSF 只是一个基于组件的 MVC 框架。

也可以看看:

  • 我们的 Servlet 过滤器 wiki 页面 https://stackoverflow.com/tags/servlet-filters/info
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jsf 安全约束在用户未登录时保护链接? 的相关文章

  • 需要 Spring 3 JSF 2 集成示例

    我想将 Spring 3 Web Flow 2 JSF 2 集成在一起 我需要您向我推荐一个好的教程或示例 提前致谢 UPDATE 我使用了以下示例 它对我来说运行良好 没有任何问题 http www mkyong com jsf2 jsf
  • 使用WordPress get_results()数据库函数是否可以防止sql注入

    似乎找不到答案 但想知道以下对数据库的查询是否容易受到 SQL 注入的攻击 searchPostResults wpdb gt get results querySearchVals OBJECT 这是使用的查询 global wpdb o
  • 我仍然认为在客户端哈希密码更好。我错了吗?

    我读过这些 https hackernoon com im harvesting credit card numbers and passwords from your site here s how 9a8cb347c5b5 https
  • 来自 jsp:include 的 JSF 1.2 自定义组件

    在开始回答我的问题之前 我先说一下我的不幸的局限性 我使用的是 JSF 1 2 而不是 2 所以没有复合组件 我使用 JSP 代替 Facelets 进行渲染 所以这些复合组件也没有 我不允许使用任何第三方标签库 richFaces ice
  • Delphi 应用程序被 Google Chrome 视为“危险”

    我经常用Delphi 2009制作数学软件 并将其发布在我的网站上 然而 去年左右 Google Chrome 开始认为我的一小部分 但数量不断增加 EXE 是 有害的 并且 Google Chrome 拒绝下载它们 例如 今天我编写了一个
  • 无法让 PrimeFaces RequestContext.getCurrentInstance().openDialog() 工作

    无法获取 PrimeFacesRequestContext getCurrentInstance openDialog 上班 我直接从 primefaces 展示中提取了示例代码 但我从未打开过对话框 我正在使用在 Wildfly 8 2
  • 如何使用 php 通过 https 下载文件

    我需要使用 PHP 下载 xml 文件 我可以在对文件进行curl 调用时通过设置以下选项来读取文件的内容 curl setopt http CURLOPT SSL VERIFYPEER false curl setopt http CUR
  • 如何在Rails 4.1中使用secrets.yml作为API_KEYS?

    在我最近的一个项目中 我开始于 gitignoring包含机密和环境变量的文件 因此 除了包含第三方机密 例如 Stripe Twitter API 或 Facebook Graph 或内部 api keys 等 的文件外 整个项目都致力于
  • JSF - 实施受限页面过滤器

    我正在关注 BalusC 的回答JSF 2 0 如何获取在浏览器地址栏中输入的 URL https stackoverflow com questions 4105263 jsf 2 0 how to get the url that is
  • 如果 JSF 页面受 j_security_check 保护,则 ajax 请求不会引发 ViewExpiredException

    我有一个不受保护的 JSF 页面j security check 我执行以下步骤 在浏览器中打开 JSF 页面 重新启动服务器 单击 JSF 页面上的命令按钮以发起 ajax 调用 Firebug 表明ViewExpiredExceptio
  • 使用公钥时出现 InvalidKeySpecException

    我正在拼命尝试在 Android 上使用非对称公钥 私钥加密技术来加密消息 我在 Windows 上 使用 puttygen 生成了公钥和私钥 我不确定它有什么区别 但我选择了 SSH 2 RSA 这是公钥 AAAAB3NzaC1yc2EA
  • JWT(Json Web 令牌)与自定义令牌

    我仔细查看了问题 但没有找到任何可以解决我的疑问的内容 我找到了有关 JWT 的大量信息 但在比较 JWT 相对于针对 REST 服务生成自定义令牌来对身份验证请求提供的优势时 发现的信息并不多 与生成自定义生成令牌相比 使用 JWT Js
  • 有关 CredEnumerate 的帮助

    作为后续this https stackoverflow com questions 199518 how to programatically add mapped network passwords winxp我希望有人可以帮助解决这个
  • JSF 2.x @EJB 依赖注入错误

    因此 正如编程中通常发生的那样 我提出了一个问题 而一个潜在的解决方案又引发了更多问题 和错误 我刚开始使用 servlet JSF 和 EJB 并且遇到了依赖注入错误 这是我原来的问题 JSF h 标签不显示 https stackove
  • 在 JSF 中动态创建表列

    我正在开发仪表板应用程序 我必须检索一组记录并显示在动态表框中 页框长度是固定的 现在可以初始化列和行 它应该看起来像这个示例 目前我正在使用数据表来显示 但它将所有数据打印在一列中 我如何将我的代码更改为上述模式
  • 从钥匙串保存和加载 |斯威夫特[重复]

    这个问题在这里已经有答案了 如何简单地将字符串存储在钥匙串中并在需要时加载 有几种SO解决方案 主要参考Git repo 但我需要最新 Swift 上最小和最简单的解决方案 当然 我不想添加 git 框架来简单地在我的项目中存储密码 有类似
  • 当我使用加盐 CRYPT_MD5 加密我的密码时,正在加密什么?

    对字符串使用 md5 总是会产生字母数字加密结果 即 没有符号 然而 当我使用 php crypt 函数 特别是带有盐的 CRYPT MD5 并且它已打开 我已经检查过 时 它返回的假定 md5 哈希看起来不像 md5 哈希 例如 如果我
  • 如何知道 glassfish 是什么 - 完整平台或网络配置文件?

    我已经安装了glassfish 我可以跑 asadmin version 它显示了它是什么版本 但如何知道它是 完整平台 还是 Web 配置文件 你可以使用 glassfish4 bin gt asadmin list containers
  • JWT在浏览器中存储在哪里?如何防范CSRF?

    我知道基于 cookie 的身份验证 可以应用 SSL 和 HttpOnly 标志来保护基于 cookie 的身份验证免受 MITM 和 XSS 的影响 然而 需要采取更多特殊措施来保护其免受 CSRF 的影响 它们只是有点复杂 参考 ht
  • 登录代码示例已通过 SQL 注入被黑客攻击,尽管 mysql_real_escape_string...

    我使用 CodeIgniter 但在黑客攻击方面遇到了麻烦 是否可以对以下登录代码进行 SQL 注入 function process login username mysql real escape string this gt inpu

随机推荐

  • $.mobile.silentScroll 在 worklight 应用程序中不起作用

    我正在使用 IBM 的 worklight 框架开发一个应用程序 其中我使用 jquery 移动库进行编码 不幸的是 当我使用 mobile silentScroll滚动 它没有效果 它不起作用 有人遇到过这个问题吗 在其他工作中 如何在w
  • PowerShell安装NuGet,显示无法访问互联网,但实际上可以

    我按照中提到的步骤进行操作在代理后面使用 PowerShell http woshub com using powershell behind a proxy 配置我的代理服务器 netsh winhttp set proxy IP Por
  • Pygame 或 Python 中的透明窗口

    我正在尝试为我的游戏制作一个透明窗口作为启动屏幕 图像具有透明度 但我无法使窗口透明 例如在其后面看到屏幕 桌面等 我发现的所有内容都不能使用 pygame 我可以从中提取任何外部库来实现这一点吗 顺便提一句 这完全是一个Linux项目 所
  • Django FileField 在上传后移动文件

    围绕这一主题有几个问题 但我发现没有一个适合我想做的事情 我希望能够将文件上传到模型 并使用 pk 等模型实例属性将该文件保存在一个合适的位置 我知道这些东西会在之后设置model save 所以我需要编写一个自定义保存来执行此操作 但我无
  • 如何配置 docker 文件以像 perl 一样运行 cgi 脚本

    我有这个文件 索引 php Dockerfile conf myawesomesite conf cgi bin helloworld pl 在 conf myawesomesite conf 中
  • PHP 页面加载/刷新到准确位置

    我想做的是通过 href 链接将用户传递到 php 脚本 然后将他们传回与单击链接之前完全相同的位置 就像页面尚未刷新一样 有谁知道这是否或如何可能 谢谢 使用 HTML 您可以得到以下内容 p a href script php Send
  • 如何在 MongoDB 中处理小于 1970 的日期

    我有一个包含 生日 字段的文档 该字段的值也可能低于 01 01 1970 我该如何处理这个问题 例如 birthday gt newMongoDate strtotime 31 10 1968 这将创建一个 生日 值 1 1 1970 1
  • Tomcat 上的 SSL 证书 - 别名无法识别密钥

    想知道是否有人可以告诉我我在哪里搞砸了 我有一个 keytool 创建的密钥库 一个来自 Thawte 的主证书 辅助证书和 ssl 证书 我最初使用 openssl 创建了 CSR 然后使用记录的过程将私钥转换为 PKCS12 以导入到密
  • 将一行复制一定次数,然后每次将 30 分钟添加到时间戳(就像序列一样)

    样本数据 ID Location Type Trip End Number of periods 1298 Residential 02 01 2022 05 30 48 1298 Residential 03 01 2022 05 30
  • 可以在 PHP 中测试变量是否是静态的吗?

    PHP 中是否可以测试变量是否是静态的 我正在尝试创建一个神奇的方法 get它还查看静态变量 我发现property exists 当变量也是静态时返回 true 但我需要使用 代替 gt 我会期待吗 可以通过反射测试变量是否是静态的 cl
  • 构建多部分响应

    考虑到多个 HTTP 请求的响应 我必须从中构建一个多部分响应 我面临的问题是如何在最终的多部分响应中设置单个响应的响应标头 为了 例如 HttpClient client new HttpClient HttpRequestMessage
  • 带标头的 Alamofire POST 请求

    我正在尝试在 Swift 中使用 Alamofire 发出带有标头的发布请求 然而 我不断得到方法调用中的额外参数错误 我正在使用 Alamofire 4 5 版本 我无法找出错误 请查找附件中的代码 let headers Authori
  • 流星中的 Bootstrap 3 模态未显示

    我试图让 bootstrap 3 模态弹出流星应用程序 但没有成功 一切似乎都已就位 我已经在这里和其他地方搜索过 但它根本行不通 HTML 是
  • 如何使用 xml 设置颜色可绘制的圆角半径?

    在android网站上 有一个关于颜色绘图的部分 http developer android com guide topics resources available resources html colordrawableresourc
  • 计算成员中的 WHERE 子句

    我面临一些通过比较维度值来计算值的问题 我有 3 个维度 数据类型 客户 产品 和一个度量 GrossSales 如果我想要 ProductID 1 2 3 且 Dataype 4 5 6 的 GrossSales MDX 查询是什么 这里
  • 在数据库中存储年份[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 年份数据的最佳 PostgreSQL 数据类型是什么 例如 2006 年或 1847 年 TEXT SMALLINT DATE 理想情况下
  • 字符串性能 - Windows 10 下的 Python 2.7 与 Python 3.4 对比 Ubuntu

    Use case一个简单的函数 用于检查特定字符串是否在另一个字符串中的位置为 3 的倍数 请参阅此处现实世界的例子 https en wikipedia org wiki Stop codon 在 DNA 序列中寻找终止密码子 功能 sl
  • Android SD卡目录文件夹名称列表

    如何获取 SD 卡上特定目录中的所有文件夹 不是文件 的名称 例如 所有子文件夹名称 sdcard first level folder 我需要文件夹名称 因此我可以将完整路径 字符串 传递给方法 然后将其压缩 zip Thanks 我想你
  • Java SE 6 中 Sun JVM 的默认最大堆大小是多少?

    Java SE 6 中 Sun JVM 的默认最大堆大小是多少 即相当于设置 Xmx 看起来对于带有服务器级机器的 Java SE 5 it s http java sun com j2se 1 5 0 docs guide vm gc e
  • jsf 安全约束在用户未登录时保护链接?

    我有一个定义了安全约束的 JSF2 GlassFish 3 0 应用程序 示例如下 我的问题是 我有一个 注册 链接 当用户登录时不应访问该链接 也就是说 如果他们尝试点击 signup jsf 如果他们已登录 他们应该能够访问 所以如果他