0

我有以下 servlet 定义:

    <servlet>
        <servlet-name>licenseGenService</servlet-name>
        <servlet-class>org.springframework.web.context.support.HttpRequestHandlerServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>licenseGenService</servlet-name>
        <url-pattern>/remoting/licensing</url-pattern>
    </servlet-mapping>

    <!-- Restful API Servlet-->
    <servlet>
        <servlet-name>licensingRestService</servlet-name>
        <servlet-class>
            com.sun.jersey.spi.spring.container.servlet.SpringServlet
        </servlet-class>
        <init-param>
            <param-name>
                    com.sun.jersey.config.property.packages
            </param-name>
            <param-value>
                com.mydomain.licensing.rest
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>licensingRestService</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

然后是以下安全过滤器:

    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>
            org.springframework.web.filter.DelegatingFilterProxy
        </filter-class>
    </filter>


    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

因此,根据我所阅读的内容,/*具有显式 url 的 url 模式会被覆盖。这适用于我的 servlet。问题是,我不想要licenseGenServiceservlet 所需的基本身份验证。如何将安全过滤器定义为仅适用于 REST servlet,而不适用于那个licenseGenService

4

2 回答 2

1

我最终在我的安全应用程序上下文中放置了以下内容:

<http pattern="/remoting/**" security="none"/>

这适用于 Spring 3.1

于 2012-11-06T20:18:09.933 回答
1

可以在应用上下文xml中配置需要授权的url。

<http use-expressions="true">
  <intercept-url pattern="/remoting/licensing/**"  filters="none" />
</http>
于 2012-11-06T20:04:44.537 回答