3 votes

Comment autoriser une seule url dans spring security

J'ai deux urls d'arrivée

  1. /api/appconsole/app/{appid}
  2. /api/appconsole/app/search

Je veux sécuriser la seconde API mais je veux autoriser la première.

Voici le fichier websecurityconfig.java. Que dois-je écrire pour qu'il n'autorise que la 1ère api, c'est-à-dire /api/appconsole/app/{appid}.

httpSecurity.csrf().disable()

                .exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and()

                // don't create session
                .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()

                .authorizeRequests()
                //.antMatchers(HttpMethod.OPTIONS, "/**").permitAll()

                // allow anonymous resource requests
                .antMatchers(
                        HttpMethod.GET,
                        "/",
                        "/file/**/*.*",
                        "/*.html",
                        "/favicon.ico",
                        "/**/*.html",
                        "/**/*.css",
                        "/**/*.js"
                ).permitAll()
                .antMatchers(HttpMethod.GET, "/api/appconsole/app/{appid}").permitAll()
                .antMatchers(HttpMethod.OPTIONS, "/api/**").permitAll()
                .antMatchers("/ws/**").permitAll()
                .antMatchers("/upload").permitAll()
                .antMatchers("/login/**").permitAll()
                .antMatchers("/registration/**").permitAll()
                .antMatchers("/api/orbeon/**").permitAll()
                .anyRequest().authenticated();

Merci d'avance.

0voto

Andrew Sasha Points 312

L'ordre est important :

http ...
   .antMatchers(HttpMethod.GET, "/api/appconsole/app/search").authenticated()
   .antMatchers(HttpMethod.GET, "/api/appconsole/app/*").permitAll()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X