Выпуск статических HTML-файлов весной 3 - PullRequest
2 голосов
/ 20 марта 2012

I all,

У меня есть приложение Spring, работающее с безопасностью на основе ролей.Приложение работает нормально, просто мне нужно представить несколько статических HTML-страниц, которые также будут размещены в той же войне.Так что, если www.myapp.com/abc/work.jsp является моей защищенной страницей, то на www.myapp.com/home.htm должна отображаться статическая html-страница.Я включил HTML-файлы, но проблема в том, что я получаю 404 на www.myapp.com/home.htm, и www.myapp.com/abc/work.jsp работает нормально.

web.xml -

<display-name>guru</display-name>
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/app-security-config.xml</param-value>
    </context-param>

    <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>
    <servlet>
       <servlet-name>dispatcher</servlet-name>
       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
       <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

  <welcome-file-list>
    <welcome-file>/home.htm</welcome-file>
  </welcome-file-list>

My app-security-config.xml

<http auto-config="false" disable-url-rewriting="false" access-decision-manager-ref="accessDecisionManager" 
    entry-point-ref="authenticationProcessingFilterEntryPoint">
    <custom-filter position="FORM_LOGIN_FILTER" ref="authenticationProcessingFilter" />
    <custom-filter position="LOGOUT_FILTER" ref="customLogoutFilter"/>
    <access-denied-handler error-page="/login.jsp?login_error=true"/> 
     <intercept-url pattern="/login.htm" filters="none" />
    <intercept-url pattern="/abc/def/**" access="ROLE_USER"/>
    <intercept-url pattern="/**" access="ROLE_ANONYMOUS" />
    <anonymous enabled='true'/> 
    <session-management session-authentication-strategy-ref="sas"/>  
    <custom-filter position="CONCURRENT_SESSION_FILTER" ref="concurrencyFilter" />
    </http>

1 Ответ

1 голос
/ 22 января 2013

Здравствуйте, вы должны предоставить сопоставление для статического содержимого в вашей конфигурации сервлета диспетчера, что-то вроде:

<mvc:resources mapping="/resources/**" location="/WEB-INF/" />

Таким образом, если ваш статический контент home.htm находится в папке / WEB-INF /, вы можете получить к нему доступ через URL-адрес /resources/home.htm. Это позволит избежать того, что Spring перехватит и перенаправит на контроллер все пути, начиная с / resources, зарезервировав этот путь к статическим ресурсам, таким как изображения, файлы css, скрипты и html статические страницы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...