问题标签 [jacc]
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.
security - JACC 提供者如何使用部署它的服务器的主体到角色映射工具?
我正在写一个JACC
提供者。
在此过程中,这意味着实施一个PolicyConfiguration
.
PolicyConfiguration
负责从应用服务器接受配置信息,例如哪些权限归属于哪些角色。这样一来,以后可以在获得有关当前用户的信息以及他正在尝试做什么Policy
时做出授权决定。
但是,PolicyConfiguration
维护角色与其权限之间的映射并Principals
分配给这些角色并不是 的(残暴的)合同的一部分。
通常——总是,真的——一个应用服务器容纳这个映射。例如,在 Glassfish 上,您可以通过在 Java EE 模块中提供诸如此类sun-web.xml
的内容来影响此映射。sun-ejb-jar.xml
(这些特定于供应商的文件负责说明,例如,superusers
是一个将被分配应用程序角色的组admins
。)
我想重用这些文件提供的功能,并且我想为尽可能广泛的应用程序服务器这样做。
这是——完全武断的——IBM 对此事的看法,这似乎证实了我的怀疑,即我想做的事情基本上是不可能的。(对于我来说,这个特定的 Java EE 合同不值得打印它的纸张。)
我的问题:我如何从内部获取这个主体到角色的映射信息——对于初学者来说——Glassfish 和 JBoss PolicyConfiguration
?如果有一种我不知道的标准方法,我会全神贯注。
security - EJB 安全自定义 JACC 提供程序
我们的项目有一个非常详细的授权模式
所以我不得不实现我自己的 JACC 提供程序。
现在我遇到了 EJB 安全问题。
我有一个 EJB 方法,我想限制对它的访问
关于它的参数值
例如考虑delete(String arg1)
EJB 方法
我希望用户能够运行它arg1=='something'
并且无法以其他方式运行它
我如何访问方法的参数值?
谢谢
jakarta-ee - EJB 3.1 - javax.security.auth 的实现
据我了解 javax.security.auth 是一个用于身份验证和授权的 API。
我知道安全性应该由容器提供者实现,并且 bean 提供者可以按照 JSR 的建议在他的 bean 我的简单注释(等)中@javax.annotation.security.RolesAllowed
使用它。@PermitAll
我的问题:这仅仅意味着如果不部署在容器中就无法测试安全性。有没有办法使用 javax.security 的外部第三个实现,它可以以某种方式从测试中注入到 bean 中,也可以从中传播和测试安全性?
这几乎是一种类似的方法,我们使用该方法将 JPA 实现或外部事务管理器从单元测试注入到 bean 中进行测试。
PS:我只是想检查一下这是否可能,如果可能的话,它可能会为其他一些开发开辟道路。我知道可以通过将 bean 部署在 OpenEJB 或 Arquillian 等嵌入式容器中轻松完成此测试。
security - Custom isUserInRole implementation with RDBMS
I'm developing a Java EE 6 applications using Glassfish 3.1.1 as my app server. I'm using declarative and programmatic security. I've defined several roles at my deployment descriptor, and defined all security constraints.
I was using JDBCReal, and now I've changed it to an LDAPRealm. So I would like to manage the user-group mapping without relying on the LDAP groups. In other words, I want to authenticate to the LDAP but authorize using a RDBM, asking if the current user belongs to X group.
I thought there would be a way to "override" the isUserInRole method. While searching I've heard of things like JACC and I found out that there are ways to plug a custom JACC provider or something like that to the app server, but I couldn't find any custom JACC implementation and I have no idea how to do that (or event if it would work..)
security - Glassfish 安全 - jdbcRealm:如何实现“记住我”
我将 jdbcRealm 与 Glassfish V3 和 Java EE 6 一起使用,我想实现一个基于 cookie 的“Remember-Me”。
但是,似乎我无法在 JACC 安全检查之前设置过滤器。有任何想法吗?
glassfish-3 - JACC Policy Provider:Failed Permission Check permission (" ("java.security.SecurityPermission" "setPolicy") ")
如果我在 glassfish3.1.2 上部署我的 jsf2.0 Web 应用程序,它工作正常并且登录机制工作正常。但是,当我在登录时尝试在同事机器上的 glassfish3.1.2 上部署相同的应用程序时,它会给出 JACC 权限检查失败错误。我可以知道如何停止调用 JACC 权限吗?在生成的文件夹中生成granted.policy 文件。同样以编程方式,我不为我的应用程序编写任何策略。
jakarta-ee - 在 JAAS 登录模块中获取 HttpSession/Request
我正在尝试在我的登录模块中获取 HttpSession 或 Request。我已经尝试过 JACC,但它没有用。
我需要这个,因为我必须在登录窗口中输入验证码。也许一些 JAAS 忍者知道更好的方法来做到这一点。我正在使用kaptcha来做到这一点。
提前致谢。
jakarta-ee - Glassfish @RolesAllowed 与自定义 SecurityContext
我要问的问题有点棘手,我还没有找到任何答案。也许是因为我在寻找错误的东西。但我希望你能在这方面帮助我。
我使用以下教程实现了一个自定义 SecurityContext,它使用令牌而不是基本的用户/密码身份验证。
基本上,它初始化并注入一个 ResourceFilterFactory,它本身会在发送到应用程序的每个 HTTP 请求中注入一个 ResourceFilter。
此 ResourceFilter 在请求中搜索“Authentication”标头,获取其内容,然后对用户进行身份验证。如果用户通过身份验证,则使用 SecurityContext 将其注入到请求中。
我对代码进行了转换,以使其作为 EJB 工作。
这是代码:
web.xml
ResourceFilterFactory.java // 这个类注入了 EJB SecurityContextFilter
SecurityContextFilter.java // 在服务器接收到的每个 HTTP 请求时都会调用此 EJB。它检查“身份验证”标头并获取与令牌关联的用户。
SecurityContextImpl.java // 这个类被注入到请求中,并且有 @RolesAllowed 注解应该使用的 isUserInRole() 方法
ExternalUser.java // 使用数据库用户信息创建和填充的实体。
最后是 Jersey WebService :
WebService 运行良好,我使用注入的 SecurityContext 获取 ExternalUser 实例。但是如果我使用@RolesAllowed({"arole"})
注释,Glassfish 会给我这个错误:
我想我需要配置 Glassfish 以使其使用我创建的 SecurityContextImpl。我不知道为什么它不能正确注入,我可以在我的代码中调用它的方法。
我可以isUserInRole()
手动使用该方法,但我只是避免问题而不是面对它。很抱歉这篇长篇文章,但现在我认为您拥有帮助我解决此问题所需的所有信息。预先感谢您的帮助。
埃默里克
security - 实施 JACC 提供程序
我需要支持来自不同系统的身份验证和授权。我使用的是 Jboss AS 7。关于授权,我对当前系统有非常详细的权限规则。我意识到我必须编写自己的 PolicyConfiguration 才能做到这一点。在哪里可以找到自定义 JACC 提供程序实现的示例?
jakarta-ee - 简而言之,谁能向我解释 JAAS、JACC 和 JASPIC 之间的区别?
我会诚实的。我做开发人员已经有一段时间了,但这是我第一次听说 JACC 和 JASPIC。我知道它们是授权提供者使用的标准,但它们与 JAAS 究竟有何不同?我们什么时候会使用其中一个?
我做了一些初步的研究,并不是我懒惰去做。只是阅读有关 JACC 和 JASPIC 的文章让我有点不知所措,我需要在尽可能短的时间内了解这一点,因为我需要在我即将进行的项目中实现这一点。只是在我对它的理解上寻找一个跳跃开始。