我非常绝望,因为我认为一定有一个简单的解决方案来解决我的问题,但我正在寻找 - 无济于事。
我在 Glassfish 3.1.1 中使用自定义领域。此自定义领域(实现 AppservPasswordLoginModuleInterface)从 HTTPS 请求中获取安全令牌,验证安全令牌,然后将用户返回到 Glassfish。
问题是安全令牌不包含任何组,这意味着方法 public String[] getGroupsList() 或自定义领域返回一个空列表(正确的是,因为安全令牌中没有角色)。
也就是说,我希望有一个安全限制,只有经过验证的用户才能登录。我知道我可以在 web.xml 中使用以下约束:
<security-constraint>
<web-resource-collection>
<web-resource-name>mywebapp</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>Users</role-name>
</auth-constraint>
</security-constraint>
但因为我没有任何组,所以我无法将任何组映射到角色,因此我无法将身份验证约束与角色名称一起使用。
web.xml 中有没有一种方法可以定义只允许经过身份验证的用户,忽略他们所处的角色,并忽略他们是否处于任何角色。
有几个我无法实施的解决方案:
- 我无法更改底层 LDAP 以包含角色,因为 LDAP 架构以及 LDAP 用户映射到安全令牌的方式超出了我们的范围。
- 我必须使用当前的自定义领域处理程序,我无法将其替换为我自己的处理程序,它只返回默认组。我确实尝试过一次,并且成功了。但我无法用我自己的自定义领域替换现有的自定义领域,因为自定义领域应该是通用的。
但我真的认为 web.xml 中应该有一种方法只是说:忽略所有组和角色,我只想要一个经过身份验证的用户?
任何帮助,将不胜感激。
很老了,但是对于那些寻找答案的人来说,您可以使用*
角色名称:
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
This guy https://stackoverflow.com/questions/8519057/authentication-without-role-in-web-xml-in-jboss-as-7设法解决了它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)