问题标签 [securitydomain]
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.
jakarta-ee - 使用 JAAS 并发访问 jsf 页面
我使用 WildFly JAAS 安全域为 Web 应用程序设置安全性。我有一个包含一些属性的页面,并希望让单个用户访问该页面。
示例:/secured/property.xhtml Ted 登录并转到此页面。其他用户无法登录或可以登录但无权访问此页面,将被重定向到 /secured/sorry.xhtml 并显示“抱歉 Ted 现在使用属性页”。当 Ted 离开页面 Tobi 访问该页面时,其他用户的访问将再次被锁定,他们将被重定向到 sorry.xhtml 页面。
我试图用过滤器和带有用户存在标志的单例 bean 来做到这一点。但我失败了,因为 JAAS 登录拦截器在我的过滤器和用户登录后在页面上重定向之前工作,即使它正在使用中。
我怎样才能进行这样的并发访问?
wildfly - Wildfly 不调用自己的 LoginModule
我已将应用程序从 glassfish 迁移到 wildfly 9.0.0CR2。我自己的 ServerAuthModule 和 LoginModule 有问题。在standalone-full.xml 我配置了这个:
当我调用我的网络应用程序时,我得到以下日志:
Wildfly 没有调用我的 LoginModule,他调用的是他自己的一个。我在我的配置中没有发现任何错误,我的类只实现了接口 LoginModule 和 ServerAuthModule。有人有同样的问题吗?
编辑:我解决了我的问题,在我的 ServerAuthModule 中我有领域 =“custom.realm”,所以我必须将登录模块堆栈的名称从“自定义”更改为“custom.realm”
ejb - Wildfly 8.2.0 调用安全远程 ejb
我正在尝试调用安全的远程 ejb,但我不能。我正在使用 ejb-client-API。
该应用程序部署在名为 som.ear 的耳朵中。
我正在使用 Wildfly 8.2.0 最终版
代码客户端:
jboss-ejb-client.properies
EJB
独立的.xml
服务器日志
客户端日志
我可以看到使用了安全域“som_security_domain”的配置,因为它运行查询以获取主体的密码和角色,但在尝试执行安全域的 AuthenticationManager 查找时失败。在日志中我可以看到:
[org.jboss.as.security](EJB 默认 - 1)查找 som_security_domain/authorizationMgr 的 JNDI 失败,找不到 java:jboss。
提前致谢
caching - 安全域的 Wildfly 刷新缓存
我在wildfly上部署了一个带有JAX-RS接口的war项目,并且配置了一个安全域,它从db加载用户密码和角色。安全域使用 cache-type=default。安全域无法识别经过身份验证的用户的更新,因为旧数据已被缓存。我用 jboss-cli.sh 验证了这一点。那么如何从缓存中删除特定用户呢?我想在已部署的应用程序中执行此操作,而不是通过 jboss-cli.sh。
authentication - 使用 jboss 安全域的 LDAP 身份验证
在使用 spring 4.1.6、spring security 4.0.1 和 JavaConfig 的 JBOSS EAP 6 上运行的 Web 应用程序中,我们试图实现 LDAP 身份验证,而不是在配置中定义 LDAP 服务器的属性(url 等) (AuthenticationManagerBuilder auth) 方法我们想从 JBOSS 安全域中获取属性,该域已经在容器上配置并具有所有需要的属性。
我们尝试了几件事并在网上搜索了实现此目的的方法,但无法找到解决方案。
这是我们目前拥有的:
/WEB-INF/jboss-web.xml: jboss-web 安全域 java:/jaas/ad-ldap 安全域 jboss-web
安全配置类:
谢谢
jakarta-ee - 使用 Picketlink 和 Wildfly 在 LDAP 服务器上进行身份验证
经过一番挣扎后,我配置了 Wildfly 的 Standalone.xml 以再次对 LDAP 服务器进行身份验证:
我还配置了我的 jboss-web:
和我的 web.xml:
一切正常。
下一步是使用 PicketLink。但我不知道如何配置 PicketLink 以使用我的安全域。
我可以找到以编程方式建立 LDAP 连接以及如何设置 PicketLink 以使用身份和服务提供者的示例和教程。但据我所知,我的用例包含身份提供者和服务提供者?!?所以没有我想连接的专用服务器。LDAP 查询由我的 Wildfly 服务器处理。在每个示例中,我都能发现两台服务器都是独立的机器。我理解错了吗?经过数小时的“谷歌搜索”,我越来越困惑。
我添加了
但我不知道如何配置 picketlink.xml。我的身份提供者的 URL 是什么?我相信只有一部分我理解错了。有人能帮我吗?:-D
jboss - Wildfly 9 安全域不起作用
我正在将一个大型网络应用程序从 jboss as 6 迁移到 wildfly 9,并且在此过程中遇到了一些障碍。
其中之一是安全域。
相关部分standalone.xml
如下:
foo.token.LoginModule.java
是这样的:
该应用ear
程序.war
部署jboss-web.xml
为.jar
. jboss-app.xml
jboss-网络:
jboss-应用程序:
但是,当我尝试应用程序尝试使用带有Stateless
注释的 bean 时@SecurityDomain("mydomain")
,我会遇到访问错误:
19:35:40,530 错误 [org.jboss.as.ejb3.invocation](默认任务 26)WFLYEJB0034:方法公共 java.lang.String foo.service.blah.FooService.find() 的组件 FooService 上的 EJB 调用失败:javax.ejb.EJBAccessException:WFLYEJB0364:调用方法:公共java.lang.String foo.service.blah.FooService.find()的bean:FooService是不允许的
FooService 的代码如下所示:
我看到java:/jaas/
必须从任何地方删除前缀,我做到了,但这仍然行不通。
在迁移指南中找不到与此相关的任何其他内容。
我错过了什么?
java - 未调用安全域(工作)
我尝试在 Wildfly 8.2.0.Final 中使用 Databaselogin 来保护我的应用程序。
我在standalone.xml中配置了我的数据源,它似乎可以访问数据库:
<datasource jndi-name="java:/jdbc/Racoonda" pool-name="RacoondaDS" enabled="true" use-java-context="true">
<connection-url>jdbc:mysql://localhost:3306/racoonda</connection-url>
<driver>mysql</driver>
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>100</max-pool-size>
<prefill>true</prefill>
<use-strict-min>false</use-strict-min>
<flush-strategy>Gracefully</flush-strategy>
</pool>
<security>
<user-name>root</user-name>
<password>root</password>
</security>
<validation>
<check-valid-connection-sql>select 1</check-valid-connection-sql>
<validate-on-match>true</validate-on-match>
<background-validation>true</background-validation>
<background-validation-millis>10000</background-validation-millis>
</validation>
<timeout>
<idle-timeout-minutes>10</idle-timeout-minutes>
</timeout>
<statement>
<prepared-statement-cache-size>10</prepared-statement-cache-size>
<share-prepared-statements>true</share-prepared-statements>
</statement>
</datasource>
而且我还在standalone.xml中配置了我的安全域,如下所示:
<security-domain name="racoondaAdmin" cache-type="default">
<authentication>
<login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
<module-option name="dsJndiName" value="java:/jdbc/Racoonda"/>
<module-option name="principalsQuery" value="SELECT password FROM Admin WHERE id=?"/>
<module-option name="rolesQuery" value="SELECT 'Admin', 'Roles' FROM dual"/>
</login-module>
</authentication>
</security-domain>
我在我的资源/WEB-INF/jboss-web中添加了域.xml:
然后我尝试在资源/WEB-INF/web.xml 中保护我的应用程序:
数据库访问有效,因为我可以从我试图保护的服务中获取值(它从数据库中获取它们)。
但是我可以在不输入任何凭据的情况下访问它。我将安全日志级别放在 TRACE 中,并尝试了我能找到的所有方法,如果有人可以提供帮助,我将不胜感激。提前致谢
java - Wildfly 安全域不起作用
我已经尝试了所有我能找到的东西,但似乎无法解决这个问题。我正在尝试使用 jboss-web.xml 在我的网站上使用 FORM 身份验证:
这是我的standalone.xml 中的安全域
这是standalone.xml中的数据源
上面的数据源正在工作,因为我一直在使用它。
这是用于创建 UserEntity 表的 UserEntity.java 类。
这是我尝试在 Wildfly 服务器上运行时给出的错误:
任何帮助将不胜感激。谢谢
jakarta-ee - EJB 安全实现逐步通过角色:Bean Provider、Application Assembler、Deployer
规范“JSR 318:Enterprise JavaBeansTM,Version 3.1”提到了 Bean Provider、Application Assembler、Deployer 和 System Administrator 等角色作为 EJB 创建的主要参与者。
下面是每个角色对安全前景的贡献:
- Bean Privider:使用 @RolesAllowed、@DeclareRoles 等注解来定义单个企业 bean 的逻辑安全视图。
- Application Assembler:更改/创建部署描述符定义了整个应用程序的逻辑安全视图。将安全角色引用映射到安全角色。
不应与目标企业系统环境中存在的用户组、用户、主体混淆。这些由 Deployer 处理。 - 部署者:部署者确保应用程序组装者所需的角色在目标系统中可用。将 Application Assembler 指定的安全视图映射到目标操作环境中安全域使用的机制和策略。
- 系统管理员:系统管理员配置用户并管理他们对组的成员资格。
每个角色输出的示例:
Bean 提供者:TestBean.java
ejb-jar.xml
/li>Application Assembler:列出 Deployer 必须在目标环境的安全域中映射的所有逻辑角色。
/li>
ejb-jar.xml
部署程序(jboss 4.2.3-GA env):为企业应用程序login-config.xml创建安全域并分配主体域系统管理员:确保 app_user DB 表中希望使用企业应用程序的用户具有 ADMIN 角色。
谁能举一个更完整的例子?或者随意添加任何可能丢失的内容或修改给定示例中可能出现的错误?安全流程的完整示例对许多学习 EJB 或希望参加 Oracle 认证专家 1Z0-895 的人很有用。