JAAS在Jboss EAP 6.3上的Web应用程序授权

时间:2015-04-27 23:32:38

标签: jboss-eap-6

目前,我正在将我的Web应用程序从JBoss EAP 5.2迁移到EAP 6.3。 该应用程序使用自定义Realm进行授权。但是,6.3中不再支持Realm,人们建议使用自定义的LoginModule。我做了一些研究,发现LoginModule仅用于身份验证。我对么?如果LoginModule还提供授权服务,我该怎么办?如果没有,有哪些替代方法可以进行授权?

谢谢。 大卫

1 个答案:

答案 0 :(得分:0)

您的LoginModule应覆盖Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus If Len(TextBox1.Text) > 0 Then TextBox1.ReadOnly = True End If End Sub 的其中一个后代。如果您实施或覆盖org.jboss.security.auth.spi.AbstractServerLoginModule方法,则可以向经过身份验证的用户添加角色以进行授权。

getRoleSets()方法返回与分配给用户的角色集对应的Groups数组。您应该返回一个名为“角色”的组,其中包含分配给用户的角色。例如:

getRoleSets()

然后向您公开的方法添加@Override protected Group[] getRoleSets() throws LoginException { Group group = new SimpleGroup("Roles"); try { Principal p = createIdentity("ADMIN_ROLE"); group.addMember(p); } catch (Exception e) { LOGGER.error("Failed to create principle on login", e); } return new Group[] { group }; } 注释,指定允许的角色。例如:

@RolesAllowed

如果用户未使用所需角色登录,则会拒绝他们访问该方法。

编辑: @RequestScoped @DenyAll @Path("admin") public class AdminServices { @POST @Path("/myAdminUri") @Produces(MediaType.TEXT_PLAIN) @RolesAllowed({ "ADMIN_ROLE" }) public String administerMethod(@Context HttpServletRequest req, @Context HttpServletResponse resp) throws SomeException { .... 文件还可以列出web.xml节中的安全限制。角色名称应与<security-constraint>方法分配的角色匹配。

getRoleSets()

Redhat site上提供了“安全参考指南”(需要支持订阅)