Domanda

Ho una webapp Java. La webapp è impacchettata come file di guerra. Questi file di guerra consentono il contenuto statico, che viene recapitato direttamente tramite HTTP. Per i servlet in questa guerra posso fare un'autenticazione HTTP (implementarla con il servlet stesso). Ma voglio anche HTTP-auth per il contenuto statico. Come posso realizzarlo?

È stato utile?

Soluzione

Crea una classe che implementa javax.servlet.Filter. Vedi Gli elementi essenziali dei filtri

Il metodo principale è doFilter al quale vengono passati gli oggetti ServletRequest, ServletResponse e FilterChain. È qui che imponi l'autenticazione.

Quindi dichiara il tuo filtro in web.xml e una mappatura del filtro come segue (mappa per ogni richiesta)

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

Altri suggerimenti

Metti i tuoi file html statici in una directory e definisci i tuoi vincoli di sicurezza nel tuo web.xml. Mappare i vincoli sul ruolo appropriato.

<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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top