tutorial mvc mediante framework español desarrollo aplicaciones spring spring-security spring-java-config jhipster

mvc - spring security



Solicitud de autorización de seguridad Spring para url y método utilizando HttpSecurity (2)

Eche un vistazo aquí https://github.com/spring-projects/spring-data-examples/tree/master/rest/security que tiene

http .httpBasic().and() .authorizeRequests() .antMatchers(HttpMethod.POST, "/employees").hasRole("ADMIN") .antMatchers(HttpMethod.PUT, "/employees/**").hasRole("ADMIN") .antMatchers(HttpMethod.PATCH, "/employees/**").hasRole("ADMIN");

¿Hay alguna forma de autorizar la solicitud de publicación a una url específica utilizando org.springframework.security.config.annotation.web.builders.HttpSecurity ?

Estoy usando HttpSecurity como:

@Override protected void configure(HttpSecurity http) throws Exception { http .addFilterAfter(new CsrfCookieGeneratorFilter(), CsrfFilter.class) .exceptionHandling() .authenticationEntryPoint(authenticationEntryPoint) .and() .rememberMe() .rememberMeServices(rememberMeServices) .key(env.getProperty("jhipster.security.rememberme.key")) .and() .formLogin() .loginProcessingUrl("/api/authentication") .successHandler(ajaxAuthenticationSuccessHandler) .failureHandler(ajaxAuthenticationFailureHandler) .usernameParameter("j_username") .passwordParameter("j_password") .permitAll() .and() .logout() .logoutUrl("/api/logout") .logoutSuccessHandler(ajaxLogoutSuccessHandler) .deleteCookies("JSESSIONID") .permitAll() .and() .headers() .frameOptions() .disable() .authorizeRequests() .antMatchers("/api/register").permitAll() .antMatchers("/api/activate").permitAll() .antMatchers("/api/authenticate").permitAll() .antMatchers("/api/logs/**").hasAuthority(AuthoritiesConstants.ADMIN) .antMatchers("/api/subscriptions").permitAll() .antMatchers("/api/**").authenticated(); }

Me gustaría permitir solicitudes POST a / api / suscripción ruta. Sólo POST. Gracias.


Sé que esta pregunta es un poco antigua, pero no creo que deshabilitar el soporte de csrf sea una respuesta aceptable. Tuve el mismo problema pero no me siento bien al usar csrf.disable (). En su lugar, agregué la siguiente línea en la parte inferior de la página dentro de las etiquetas de formulario.

<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />