В Java-webapp (война), как я могу использовать HTTP-аутентификацию для статического контента? - PullRequest
2 голосов
/ 05 мая 2009

У меня есть Java-веб-приложение. Веб-приложение упаковано как war-файл. Эти war-файлы допускают статический контент, который напрямую доставляется через HTTP. Для сервлетов в этой войне я могу сделать HTTP-аутентификацию (реализовать ее с помощью самого сервлета). Но я также хочу HTTP-аутентификацию для статического контента. Как я могу это понять?

Ответы [ 2 ]

3 голосов
/ 05 мая 2009

Поместите ваши статические html-файлы в директорию и определите ограничения безопасности в своем файле web.xml. Сопоставьте ограничения с соответствующей ролью.

<security-constraint>
        <display-name>securedResources</display-name>
        <web-resource-collection>
            <web-resource-name>securedRes</web-resource-name>
            <url-pattern>/secured/*</url-pattern>
            <http-method>GET</http-method>
            <http-method>PUT</http-method>
            <http-method>HEAD</http-method>
            <http-method>TRACE</http-method>
            <http-method>POST</http-method>
            <http-method>DELETE</http-method>
            <http-method>OPTIONS</http-method>
        </web-resource-collection>
        <auth-constraint>
            <description>
            authenticatedUser_securedRes</description>
            <role-name>authenticatedUsed</role-name>
        </auth-constraint>
    </security-constraint>
2 голосов
/ 05 мая 2009

Создайте класс, который реализует javax.servlet.Filter. См. Основы фильтров

Основным методом является doFilter, которому передаются объекты ServletRequest, ServletResponse и FilterChain. Вот где вы применяете аутентификацию.

Затем объявите свой фильтр в web.xml и сопоставьте фильтр следующим образом (сопоставляется с каждым запросом)

    <filter>
            <filter-name>Authentication Filter</filter-name>
            <filter-class>
                    com.nfsdsystems.security.filters.AuthenticationFilter</filter-class>
    </filter>
    <filter-mapping>
            <filter-name>Authentication Filter</filter-name>
            <url-pattern>/*</url-pattern>
    </filter-mapping>
...