sto usando la sicurezza primavera Stivale Primavera + Jersey +, voglio avere punti finali pubblici e privati, voglio uno schema come segue:Usa percorsi diversi per le risorse pubbliche e private Jersey + avvio Primavera
- /riposo - il mio contesto radice
- /pubblico - voglio mettere i miei endpoint pubblici in questo contesto, deve essere all'interno del contesto radice come
/rest/public/pings
- /privato - voglio plac e le mie endpoint privati, in questo contesto, deve essere all'interno del contesto radice come
/rest/private/accounts
ho la mia configurazione come segue:
Jersey configurazione: la sicurezza
@Configuration
@ApplicationPath("/rest")
public class RestConfig extends ResourceConfig {
public RestConfig() {
register(SampleResource.class);
}
}
Primavera configurazione:
@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
........
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/rest/public/**").permitAll();
http.antMatcher("/rest/**").authorizeRequests().anyRequest().fullyAuthenticated().and().httpBasic();
http.csrf().disable();
}
}
La domanda è: come posso registrare due percorsi di applicazione all'interno del mio contesto/resto, uno per/pubblico e l'altro per/privato?
NOTA: Ho cercato di creare un altro ResourceConfig come segue:
@Configuration
@ApplicationPath("/rest/public")
public class RestPublicConfig extends ResourceConfig{
public RestPublicConfig() {
register(PingResource.class);
}
}
Ma io sto ottenendo l'errore successivo:
No qualifying bean of type [org.glassfish.jersey.server.ResourceConfig] is defined: expected single matching bean but found 2: restConfig,restPublicConfig
Grazie per il vostro aiuto :)
Sì, ho capito questo, ma voglio creare molti endpoint pubblici e in questo modo posso usare solo queste classi. –