Domanda

Sto cercando di proteggere un servizio di jersey usando le annotazioni di sicurezza di primavera senza fortuna.

Ho aggiunto questa sezione su Web.XML:

<servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.test.proj.ui.web.rest;com.fasterxml.jackson.jaxrs</param-value>
    </init-param>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.test.commons.ui.web.jersey.RestApplication</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
.

Abilitato anche le pre-post-annotazioni utilizzando questo su ApplicationContext:

<global-method-security secured-annotations="enabled" pre-post-annotations="enabled" />
.

E questa è la mia classe di servizio:

@Component
@Path("/user/{uid: .*}")
public class UserResource {
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    @PreAuthorize("hasRole('ROLE_MANAGE_USER')")
    public Response getUserDetail(@PathParam("uid") String uid) {
        return "Hi, this is a test";
    }
}
.

La sicurezza della molla funziona bene nell'autenticazione, ma l'autorizzazione non funziona come previsto e ignora l'annotazione preauthorize senza alcun errore o registro.

Sto usando la molla 3.2.4 e la sicurezza della molla 3.2.1 e Jersy 2.6.

Qualche idea?

Grazie

È stato utile?

Soluzione 2

La scansione del componente a molla non è stata configurata correttamente!Per risolvere il problema, aggiungere correttamente la scansione del componente e funziona.

Altri suggerimenti

Stiamo affrontando esattamente lo stesso problema.Sull'attività di affari @preauthorize l'annotazione ha funzionato ma sulla risorsa di riposo no.L'effetto collaterale di questa situazione era che l'iniezione di fagioli a molla non funzionava anche.Tutto senza errori.

La soluzione di lavoro al 100% era usare il restaggio invece di Jersey.Sono abbastanza simili quindi non era molto lavoro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top