Pergunta

Eu tenho um Java-webapp. O webapp é empacotado como um arquivo de guerra. Estes-arquivo de guerra permitir conteúdo estático, que é entregue diretamente via HTTP. Para servlets nesta guerra eu posso fazer um HTTP-autenticação (implementá-lo com o próprio servlet). Mas eu também quero HTTP-auth para o conteúdo estático. Como posso perceber isso?

Foi útil?

Solução

Crie uma classe que implementa javax.servlet.Filter. Consulte Os fundamentos da Filtros

O método principal é doFilter que é passado o ServletRequest, ServletResponse e FilterChain objetos. É aí que você impor a autenticação.

Em seguida, declare seu filtro no web.xml e um mapeamento do filtro da seguinte forma (mapas a cada pedido)

    <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>

Outras dicas

Coloque seus arquivos html estáticos em um diretório e definir suas limitações de segurança em seu web.xml. Mapear as restrições à função apropriada.

<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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top