当前位置: 首页 > 知识库问答 >
问题:

是否可以禁用RoleBasedSecurityFilter。java的RESTEasy?

沈英勋
2023-03-14

我正在开发一个使用JBoss RESTEasy(RESTEasy-jaxrs-3.0.8)的Web应用程序,但我想禁用RoleBasedSecurityFilter。java,只使用我自己的自定义SecurityInterceptor类(它也实现javax.ws.rs.container.ContainerRequestFilter,就像RoleBasedSecurityFilter类一样,它们都是安全过滤器)。

这样做的原因是RoleBasedSecurityFilter.java的第43行调用了一个isUserInRole()方法,该方法在我的应用程序中总是返回false。结果引发了一个ForbisdenExctive,这阻止了用户访问他应该访问的资源。

我真的很喜欢能够使用@RolesAllowed注释来声明哪些角色可以访问某些功能,但正如我所解释的,RoleBasedSecurityFilter类阻止了这一点。所以我的问题是,有人知道如何禁用一个特定的RESTEasy过滤器(即RoleBasedSecurityFilter)吗?

我认为这可能是在部署描述符(web.xml)中完成的(例如,使用上下文参数元素),但我不知道如何实际禁用过滤器。

我意识到我还可以更改RoleBasedSecurityFilter中的行。我正在使用的RESTEasy库中的java文件,但这种方法对我来说太黑客了,因为我不想每次升级RESTEasy版本时都不得不再次应用这种黑客。(但不确定这会有多频繁)

共有1个答案

荀博
2023-03-14

通过在web中添加此配置,可以启用/禁用基于角色的安全性。inf部署描述符。

<context-param>
    <param-name>resteasy.role.based.security</param-name>
    <param-value>true</param-value>
</context-param>

希望这有帮助。

 类似资料:
  • 问题内容: 我使用OSGI,这是我要禁用模块的主要原因,因为我真的不需要其他模块框架。是否可以这样做,例如使用命令行选项?如果是,那怎么办? 问题答案: 没有关闭模块系统的选项-它将始终处于活动状态。这会影响对JDK内部API的访问,对Java EE模块的依赖,Split软件包以及许多其他小细节 。如果您希望应用程序在Java 9上运行,则代码和依赖项必须应对这些迁移挑战。 但是,您绝不被迫创建模

  • 问题内容: 我正在阅读有关Java中已检查和未检查的异常的文章,并找到此文章/链接:https : //projectlombok.org/disableCheckedExceptions.html 根据这篇文章,这只是为javac开发的黑客。 考虑下面的代码片段: 在这里我不得不写, 因为我试图打开一个文件。在这里,“ throws”子句是必须的。没有它,我会得到一个错误。如果我确定要打开的文件

  • 问题内容: 是否可以在tomcat的URL中关闭jsessionid?jsessionid似乎对搜索引擎不太友好。 问题答案: 你可以使用此过滤器仅对搜索引擎禁用,但我建议对所有响应都使用它,因为它比不友好的搜索引擎更糟糕。它公开了可用于某些安全漏洞的会话ID(更多信息)。 Tomcat 6(6.0.30之前的版本) 你可以使用tuckey重写过滤器。 Tuckey过滤器的示例配置: Tomcat

  • 嗨,我需要禁用一个页面的tomcat缓存。 按页面控制服务器端缓存(Tomcat)? 这里的解决方案是我需要这样做: //设置标准HTTP/1.1无缓存头。回答setHeader(“缓存控制”、“私有、无存储、无缓存,必须重新验证”); //设置标准HTTP/1.0无缓存标头。response.set标头("Pragma","no-ache"); 但是我没有任何用于特定页面的servlet类。上面

  • 问题内容: 每次我运行使用Flask-SQLAlchemy的应用程序时,都会收到以下警告,提示该SQLALCHEMY_TRACK_MODIFICATIONS选项将被禁用。 我试图找出此选项的作用,但是Flask-SQLAlchemy文档尚不清楚该跟踪的用途。 · 如果设置为True(默认值),Flask-SQLAlchemy将跟踪对象的修改并发出信号。这需要额外的内存,如果不需要,可以将其禁用。

  • 问题内容: 是否可以在不完全禁用JavaScript的情况下禁用AJAX? 问题答案: 如果您使用的是Firefox,则可以使用GreaseMonkey完成此操作。(https://addons.mozilla.org/en- US/firefox/addon/748 ) GM是用于将脚本应用于您访问的部分或全部页面的框架。我有禁用google- analytics下载的GM脚本(因为它们会使速度