我需要为我的need应用程序的三个不同部分定义安全约束。一个是/admin/*的,一个是/account/*的,还有一个很棘手。最后一个应该匹配除前面的url模式之外的所有内容(/*,不包括/admin/*和/account/*)。如何创建此约束?
<security-constraint>
<web-resource-collection>
<web-resource-name>AdminPanel</web-resource-name>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>AccountPanel</web-resource-name>
<url-pattern>/account/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>account</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>HTTPSOnly</web-resource-name>
<url-pattern>`/* excluding /admin/*, /account/*`</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>visitor</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>发布于 2013-04-02 20:57:36
您定义了三个不同的角色,即。管理员,帐户和访问者。
第一个约束是只有admin角色可以访问/admin/*中的资源
第二个约束是只有account可以访问/account/*中的资源
此时(没有第三个约束),想象一个访问者角色(或任何其他角色)试图访问admin和account目录中的任何内容。由于前两条规则,它将无法访问它。它将只能访问管理员和帐户目录之外的资源。
所以你想要的已经通过前两个约束实现了,在我看来你不需要第三个约束。
https://stackoverflow.com/questions/15763763
复制相似问题