代码之家  ›  专栏  ›  技术社区  ›  Tim Williscroft

基于软件许可标志更改JAAS角色

  •  1
  • Tim Williscroft  · 技术社区  · 15 年前

    我有一个很普通的JavaEE应用程序,它运行在JBOSS上。 它使用jboss databaseloginmodule JAAS身份验证。 它还具有与Hibernate完全相同的应用层用户/角色。

    我有一个想法(我认为这对我来说很有用),我可以在软件许可证对象(不使用Hibernate)中设置一个功能位,使所有用户都成为只读用户。这让我可以通过重新授权来制作产品的只读版本。

    我想做的是基于程序内部可访问的布尔标志重新映射用户关联。

    所以通常我们会(很多人加入)

    用户-*用户角色*-角色-*角色说明

    哪里

    user.role id=>角色.id

    设置布尔值时(软件许可证中设置的功能位)

    我希望jaas的行为就像所有用户都是roleid=1,而许可证上是这样说的。

    有什么想法吗?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Tim Williscroft    15 年前

    通过将databaseServerLoginModule子类化,我可以执行额外的检查。(在软件许可证上)

    那我就可以了

    1. 如果许可证过期,请提供只读用户(凭证已固定)

    2. 如果许可证设置了只读功能位,则给只读用户(凭证是固定的)

    由于登录被截获,休眠用户查找将针对正确的用户。

        2
  •  0
  •   javashlook    15 年前

    也许我错过了这里的船,但为什么不进行编程呢?

    User 对象,提供类似 getAuthenticatedRoles() 这将另外过滤什么 Hibernate 加载。另外,使原始映射集合getter protected 并仅使用 GetAuthenticatedRoles()。 其他Java代码。