- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发我的第一个 Jsf、Jaas、JPA、JBoss 应用程序,现在我遇到了这个麻烦。我在 JBoss 中创建了两个安全域:
<security-domain name="Database" cache-type="default">
<authentication>
<login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
<module-option name="dsJndiName" value="java:jboss/JaasDS"/>
<module-option name="principalsQuery" value="select password from user where mail=?"/>
<module-option name="rolesQuery" value="select role, 'Roles' from user u where u.mail=?"/>
</login-module>
</authentication>
</security-domain>
<security-domain name="Custom" cache-type="default">
<authentication>
<login-module code="demo.SampleLoginModule" flag="required"/>
</authentication>
</security-domain>
如果我使用“数据库”域,一切正常,而如果我使用“自定义”域,我无法将角色设置为主体。
我的示例登录模块
public class SampleLoginModule implements LoginModule {
private String username;
private String password;
private SamplePrincipal userPrincipal;
public boolean login() throws LoginException {
//Here i check the credentials
}
public boolean commit() throws LoginException {
//Here i add principal to subject
userPrincipal.setName("username");
if (!(subject.getPrincipals().contains(userPrincipal)))
subject.getPrincipals().add(userPrincipal);
}
}
}
MySimplePrincipal
public class SamplePrincipal implements Principal {
private String name;
public SamplePrincipal() {
super();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
我会在方法提交中向主体添加一个角色,因为 isUserInRole
否则返回 false
。
我该怎么做?
最佳答案
添加一个名为 Roles 的 java.security.acl.Group,其中包含用户的角色名称:
Set<Principal> principals = subject.getPrincipals();
Group roleGroup = new JAASGroup("Roles");
for (String role : userRoles)
roleGroup.addMember(new RolePrincipal(role));
// group principal
principals.add(roleGroup);
// username principal
principals.add(new UserPrincipal("user"));
其中 JAASGroup 是 java.security.acl.Group 的实现,RolePrincipal 和 UserPrincipal 是 java.security.Principal 的实现。
关于java - isUserInRole 有时返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14912665/
我已经在 glassfish 3.0 中配置了 JAAS 并使用 JDBCRealm 来验证用户身份。它工作正常并且 URL 受到限制。但方法#{facesContext.externalContex
我按如下方式将用户添加到角色(请注意,我在我的机器上运行下面显示的代码): Roles.AddUserToRole(oMU.UserName, "Role1"); 使用以下代码我检查用户是否在
规范: 小服务程序:3.0 Java: 7 Tomcat :7.0.54 简介: 可以使用 HttpServletRequest.isUserInRole() 方法以编程方式检查用户是否具有特定角色
防止用户角色执行操作。 示例 1:角色“管理员” 是唯一允许扮演的角色 破坏行动。 示例 2:任何不同于“guest”的角色都可以执行 CREATE 操作。 在一个真实的案例中,我有这个: publi
我正在开发我的第一个 Jsf、Jaas、JPA、JBoss 应用程序,现在我遇到了这个麻烦。我在 JBoss 中创建了两个安全域:
HttpServletRequest isUserInRole() 方法将根据角色是否存在返回一个 boolean 值。现在,如果它这样做,它应该在某处拥有登录用户的完整角色列表。我如何获得完整的角色
当我实现 RoleProvider 类并调用 Roles.IsUserInRole(string username, string roleName) 时,代码执行首先转到方法“GetRolesFor
我在很多帖子中都发现了这个问题,但我找不到解决方案。我有一个基于领域的身份验证,并且有两个映射的角色 USERS 和 ADMINS。登录正常,但如果我尝试使用 FacesContext context
我有一个带有自定义成员资格的 c# mvc razor web 应用程序,一切都很好。我可以使用以下命令获取登录用户名:user.identity.name。我有一个用户名及其角色的数据库。现在的问题
我正在使用 Glassfish 3.1.1 作为我的应用服务器开发 Java EE 6 应用程序。我正在使用声明性和程序化安全性。我在部署描述符中定义了几个角色,并定义了所有安全约束。 我使用的是 J
我正在使用: request.IsUserInRole("ADMIN") 在我的 Controller 之一中确定对请求的响应。我尝试在测试中模拟请求,例如: @Mock private HttpSe
我正在尝试实现自定义角色提供程序。我们可以实现抽象类 RoleProvider,它使我们能够访问覆盖 RoleProvider.IsUserInRole(Username, Rolename) 但我们
我最近在 JSP 中开发了一个 tomcat 网络应用程序,它使用绑定(bind)到公司 Active Directory 的声明性安全性 (server.xml/web.xml)。我被要求为刚刚起步
在 MVC4 中,我使用 Roles.IsUserInRole 来检查给定用户是否处于某个角色。但是,使用 MVC5 我不能再这样做了...... 起初,它要求我在 web.config 中启用 Ro
在 .NET 2.0 中的自定义角色提供程序(继承自 RoleProvider)中,IsUserInRole 方法已被硬编码为始终返回 true: public override bool IsUse
我正在通过 JBoss AS7 服务器使用 Struts 2 和 Rest Services 开发一个小型 Java EE 应用程序。 我对 REST 和 Web 内容使用 FORM auth,我对
我的 Spring 应用程序为我的登录页面使用了一个包含用户和角色的数据库以及两者的交叉表。 为了将用户重定向到不同的角色页面,我使用了 Controller @Controller public c
在 tomcat-users.xml 中定义了用户和角色: 应用程序安全性定义为: Dynamic pages
问题来了 JAAS 领域连接到数据库正常,用户名和密码匹配, session 通过身份验证。然而,这些角色似乎都没有进入校长。 Tomcat 的 isInUserRole 为每个角色返回 false,
我开始认真地认为,就开发工作而言,我工作的地方受到了诅咒,我不断遇到非常奇怪的问题。 我正在使用 Roles.IsUserInRole(@"Domain\Domain Admins") 检查用户是否是
我是一名优秀的程序员,十分优秀!