采用相同名稱的多個安全角色已存在。重復的安全角色通常表示存在 leftover debug code 或拼寫錯誤。
重復的安全角色毫無用處,因為只會應用指定安全角色的最后一個定義。
例 1:web.xml 文件中的條目定義了兩個 admin 角色。
<security-constraint>
<web-resource-collection>
<web-resource-name>AdminPage</web-resource-name>
<description>Admin only pages</description>
<url-pattern>/auth/noaccess/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description>Administrators only</description>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
...
<security-role>
<description>Administrator</description>
<role-name>admin</role-name>
</security-role>
<security-role>
<description>Non-Administrator</description>
<role-name>admin</role-name>
</security-role>
[1] Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 398
[2] Sun Microsystems, Inc. Java Servlet Specification 2.4