我试图创建一个FORM身份验证,但我不需要任何角色。
我想要阻止的模式是“/ numbers”,所以我尝试:
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login</form-login-page>
<form-error-page>/login?erro=true</form-error-page>
</form-login-config>
</login-config>
<security-constraint>
<display-name>Numeros da sorte</display-name>
<web-resource-collection>
<web-resource-name>Numeros da sorte</web-resource-name>
<description/>
<url-pattern>/numbers</url-pattern>
</web-resource-collection>
</security-constraint>
但它不起作用,因为它允许每个人/数字而不要求身份验证,所以如果我在那里放置一些角色,它就会开始工作。
有一种方法可以在没有角色的情况下控制授权(只需要进行身份验证)?
答案 0 :(得分:0)
是的,但是除了web.xml中的配置之外,还需要其他东西。
在web.xml中,使用auth-constraint元素指定可以访问受保护资源的角色,例如admin。然后,在应用程序服务器中,将所有经过身份验证的用户映射到admin角色。通过执行此映射,我们将admin角色分配给所有经过身份验证的用户。由于所有经过身份验证的用户都具有管理员角色,因此这些用户可以访问受保护资源。