从web.xml的安全约束中排除JSP

naj*_*_ib 13 java security jsp tomcat web

我想排除只有一个JSP文件question.jspsecurity-constraint.

我的web.xml中有这个:

<security-constraint>
    <display-name>My Security Constraint</display-name>
    <web-resource-collection>
        <web-resource-name>Protected Area</web-resource-name>      
        <url-pattern>*.do</url-pattern>
        <url-pattern>*.jsp</url-pattern>
    </web-resource-collection>
    <auth-constraint>      
        <role-name>*</role-name>
    </auth-constraint>
</security-constraint>
Run Code Online (Sandbox Code Playgroud)

los*_*gio 24

只需添加一个免费页面部分,而不提供任何身份验证约束.它将优先于受保护的页面:

<security-constraint>
  <web-resource-collection>
    <web-resource-name>free pages</web-resource-name>
    <url-pattern>/question.jsp</url-pattern>
  </web-resource-collection>
</security-constraint>
Run Code Online (Sandbox Code Playgroud)


rin*_*rer 0

解决此问题的一种方法是将所有安全 JSP 内容移动到特定目录路径(例如 Web 根目录中的 /protected/),然后您的 web.xml 内容将如下所示:

<security-constraint>
    <display-name>My Security Constraint</display-name>
    <web-resource-collection>
        <web-resource-name>Protected Area</web-resource-name>      
        <url-pattern>/protected/*.jsp</url-pattern>
Run Code Online (Sandbox Code Playgroud)

您可以根据需要将公共 JSP 保留在默认文档根目录或其他目录路径中。