Jakarta ee 不允许某些角色访问web.xml中的某些url
假设我有3个角色:管理员和来宾Jakarta ee 不允许某些角色访问web.xml中的某些url,jakarta-ee,authentication,web.xml,Jakarta Ee,Authentication,Web.xml,假设我有3个角色:管理员和来宾 我有40页 --views ------page1.xhtml1 ------page1.xhtml2 ------page1.xhtml3 ------page1.xhtml4 ------ ...... 管理员可以访问所有页面 来宾只能访问第1、2和3页 如何将角色来宾排除在访问第1、2和3页之外 <security-constraint> <display-name>excluded</display-name>
我有40页
--views
------page1.xhtml1
------page1.xhtml2
------page1.xhtml3
------page1.xhtml4
------ ......
管理员可以访问所有页面来宾只能访问第1、2和3页
如何将角色来宾排除在访问第1、2和3页之外
<security-constraint>
<display-name>excluded</display-name>
<web-resource-collection>
<web-resource-name>No Access</web-resource-name>
<url-pattern>/views/page1.xhtml</url-pattern>
<url-pattern>/views/page2.xhtml</url-pattern>
<url-pattern>/views/page3.xhtml</url-pattern>
</web-resource-collection>
<auth-constraint />
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
排除
禁止进入
/视图/页面1.xhtml
/视图/页面2.xhtml
/视图/页面3.xhtml
没有一个
此代码示例将停止所有角色对第1、2和3页的访问,但我只想停止角色来宾对这些页面的访问您忘记在
首先,您需要在servlet容器中配置一个安全域,该域允许容器对数据库、LDAP服务器、纯文本文件等执行身份验证。请查看servlet容器的文档,因为这是每个容器的特定内容
然后,您必须将配置登录到您的web.xml
,作为一个起点,您将非常乐意使用BASIC
登录类型(以验证容器是否正确验证了用户),但稍后您将希望拥有自己的登录表单。基本登录配置如下所示:
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>default</realm-name>
</login-config>
“管理员和来宾”是2个角色,而不是3个。有多少个角色?是否需要对所有角色进行身份验证?还是只有一个角色在认证后可以访问某些页面?您所说的都是正确的,并且已经实现了。我的问题是,我希望来宾角色可以访问除第1、2和3页之外的所有页面,并且角色管理员可以访问所有页面。因此,只需将其他角色添加到
部分即可。遗憾的是,无法告诉容器您想要所有角色,但X
<security-role>
<role-name>admin</role-name>
</security-role>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>default</realm-name>
</login-config>
<auth-constraint>
<role-name>ADMIN</role-name>
<role-name>MODERATOR</role-name>
</auth-constraint>
<security-role>ADMIN</security-role>
<security-role>MODERATOR</security-role>