0

我目前有一个 REST API,必须通过 BasicAuth 进行身份验证,但后来有其他方法。

它在带有领域的 Tomcat 6 中设置,我的web.xml,

<security-constraint>
    <web-resource-collection>
        <web-resource-name>document</web-resource-name>
        <url-pattern>/rest/document/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>document</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>BASIC</auth-method>
    <Realm-name>Tomcat-Advance-Authentication-Realm</Realm-name>
</login-config>

这对于像/rest/document/*.

我的问题是,有谁知道它是否可能或者如何在不构建和重新部署的情况下动态定义其他 URL?

例如另一个安全约束,

<security-constraint>
    <web-resource-collection>
        <web-resource-name>secure</web-resource-name>
        <url-pattern>/rest/secure/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>secure</role-name>
    </auth-constraint>
</security-constraint>

谢谢

4

1 回答 1

2

每当您对 web.xml 进行更改时,都需要重新启动 Web 应用程序以获取这些更改。

如果您需要动态安全约束,请考虑构建自定义可配置过滤器和相关属性文件,您可以在其中定义受保护的资源(例如)。

于 2012-04-02T16:08:13.520 回答