问题标签 [security-constraint]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jsp - 在 JSF Web 应用程序中阻止直接 URL 访问
在我的项目中,我想在我的 JSF Web 应用程序中限制直接 URL 访问。虽然我在网上找到了它,它给出了在 web.xml 中配置安全约束的建议。
这样,我可以限制对/manage/*.jsp
. 但是我有很多文件夹要限制,例如/view/*.jsp
,/others/*.jsp
等。我想在发生错误时显示错误页面。
java - web.xml 中的安全约束未应用于具有文件扩展名的 URL 模式
我在 web.xml 中输入了以下安全约束。我的目标是 XML 文件位于公共区域。这适用于/images/*
文件夹。但是 url 模式*.xml
似乎不起作用。有任何想法吗 ?
jakarta-ee - 如何跳过安全约束?
我正在研究一个集成解决方案,我们将多个产品集成在一个层下。这一层负责用户身份验证,并充当一个窗口,通过它我可以访问所有底层产品。
我完成了单点登录(上层的身份验证)。但是,在此之后,每个产品的登录页面都会显示出来。从 web.xml 中注释掉“security-constraint/login-config”可以解决问题。但是,我不应该评论它,因为即使没有这一层,产品也可以独立存在。
我想添加一种基于系统属性启用/禁用安全约束的过滤器。
- 当我的层进行身份验证时(系统属性可以识别),应该忽略安全约束。
- 当我的层不存在时,应该激活安全约束。
非常感谢任何帮助,因为我已经花了很多时间在这方面没有任何成功。
tomcat - web.xml 中的多个安全约束不起作用
我正在升级一个 Web 应用程序(Servlet 3.0 / Tomcat 7),它的大部分页面都需要基本身份验证。此应用程序有一小部分监视 servlet,它们都不应该受到保护。在我的web.xml
中,我目前有以下security-constraint
块(私人信息替换为字母表):
在“健康”路径中有三个端点:
/health/monitor/status
/health/monitor/version
/health/monitor/version/xml
当我访问任version
一端点时,系统不会提示我输入凭据(如预期的那样)。但是,当我访问该status
页面时,浏览器会向我显示一个基本身份验证框。当我点击“取消”时,我可以正常加载页面。同样,如果我已经登录,在我的登录过期之前,状态屏幕不会再次提示我。
我意识到这可以通过不将安全内容部署到来解决/*
,但是移动它需要大量工作来更改硬编码路径和测试(这是一个非常古老的应用程序)......而且我还有 5 或 6 个做。如有必要,我愿意这样做,但我想在不更改任何安全内容路径的情况下确定这是否可行。我对监控 servlet 的路径拥有完全的自由。
这似乎与Tomcat 7 有关 - 多个安全约束不起作用,而不是完全失败,只是我的一个端点失败了,我觉得这很奇怪。我花了一些时间搜索,看起来我正在做的事情应该有效......但事实并非如此。
我正在使用web-app
3.0 版,部署到 Tomcat 7(已尝试 7.0.42 和 7.0.47 版)。我已经尝试过更改security-constraint
块的顺序。
想法?
这是我的完整web.xml
参考(请注意,监视 servlet 是通过 Java 注释管理的,因此不存在):
tomcat - tomcat 安全约束影响缓存
我在缓存我的应用程序时遇到问题。
当将此代码添加到 tomcat 的 web.xml 时:
我得到这个回应:
没有这段代码一切都很好:
任何人都可以说出导致问题的原因吗?以及为什么此代码将缓存控制更改为我的应用程序的私有。多谢
java - Tomcat:在 context.xml 中定义安全约束
类似于在web.xml (例如服务器范围) 之外定义 <security-constraint>,我试图在我的应用程序的 WEB-INF/web.xml 之外定义一个安全约束。但是,与那个问题不同,我不想在服务器范围内定义它。我试图将安全约束放在META-INF/context.xml
和${catalina.home}/conf/Catalina/localhost/<myapp>.xml
. 添加安全约束可以${catalina.home}/conf/web.xml
正常工作,但这适用于服务器上的所有内容,如果可能,我会尽量避免这种情况。
我找不到任何明确说明必须在 a 中定义安全约束的文档web.xml
,但这似乎是这种情况。这是真的?
java - 根据我们从站点管理员获得的用户名在主页上显示受限链接
我们有站点管理员身份验证,我能够从站点管理员获取屏幕名称(用户名)。现在我必须根据屏幕名称创建组。这些组将是 Admin 和 Others。如果屏幕名称在 admin 组下,如果屏幕名称在其他组下,它将能够访问所有其他内容,应该出现一个不同的主页,其中仅包含其他组可以访问的链接。我如何实现这一目标?
我尝试使用领域、用户、组角色方法,但它提示输入用户名和密码。此外,我不想使用任何用户名和密码,因为我想根据屏幕名称进行过滤。
PS:我不了解spring框架和其他框架。我只知道 JSP 和 Servlet。
问候, 伊桑
war - 和 web.xml 中的 * 字符
使用 Spring for Security,我可以使用以下代码运行程序。
我目前正在尝试在 web.xml 中执行此操作。使用 JBOSS 部署 .war 文件。下面是我所拥有的, url 模式是导致我在第一个安全约束中出现问题的原因。这些页面位于并命名为 /web/adminarchive /web/adminsettings /web/adminstuff 等... Spring 中的上面代码以我想要的方式处理它,url 为 /web/admin**/** 到捕获所有管理页面。我注释掉了 /* 部分,因为我知道它有效,只留下管理员一个。使用该结构不会引发任何错误,它根本不会提示登录。
java - 基于表单的安全约束中的 Tomcat 和 Jaas 身份验证 servlet
我有一个安全约束,涵盖了我的 Web 应用程序中的一些页面。使用 JAAS 和表单进行身份验证,并且工作正常。(我已经成功实现了我的 LoginModule)。
但是我需要通过 servlet 进行备用身份验证。
这是servlet的代码:
调试代码我看到调用了初始化、登录和提交,没有错误。servlet 返回一个带有 js 的 html 页面,该页面重定向到受保护的资源:
但是当浏览器试图获取受保护的页面时,应用服务器会返回登录页面。
我错过了什么?使用 js 重定向可能会丢失会话 cookie?或者,问题是否可能是我正在尝试(通过重定向)从未受保护的资源访问受保护的资源?
- 编辑 - -
我查看了 cookie:当我使用 servlet 登录时,它返回一个会话 cookie,当我尝试获取受保护的资源时,我可以看到浏览器将该会话 cookie 传递给服务器,但它似乎被拒绝了, 实际上它用另一个会话 cookie 响应, 去登录表单页面
- 编辑 - -
以另一种方式解决。
在对tomcat身份验证机制进行了一些调查之后,我意识到我试图做的事情是错误的。
定义了安全约束和表单登录配置来保护我的资源后,我告诉 tomcat 以它的方式管理身份验证。因此,只要我没有通过 tomcat 身份验证工作流程,我就无法进行任何身份验证。我还发现不可能在同一个 Web 应用程序中配置不同的登录配置,因此定义了表单身份验证会阻止我以其他方式进行身份验证。可能我需要的是 BaseAuthenticator 类的自定义实现(FormAuthenticator、BasicAuthenticator 等的基类,包含相应登录配置的代码),但我不确定这可能是一个好主意,也许是一个安全过滤器将是一个更好的解决方案。
了解有关 tomcat 中的安全过滤器的任何信息后,我暂时设法解决了在我的 servlet 中模拟表单身份验证的问题(我知道,这真的很糟糕)。
jakarta-ee - 安全约束不通过 HTTPS 打开页面
我希望我的一些页面可以安全地打开。大多数这些页面都以名称“my_Account_”开头
例如,其中一个页面是“my_account_add_credit_card.xhtml”
为了做到这一点,我将以下代码放入 web.xml
但它没有用。我还更改了如下 URL 模式
然后它起作用了,但问题是这将打开 HTTPS 中的每个页面,我不希望它打开 HTTPS 中的所有页面。我只需要打开以“my_account_”开头的页面
我用玻璃鱼