remember persistenttokenrepository example java spring spring-mvc spring-security annotations

java - persistenttokenrepository - Habilitar las anotaciones previas de Spring Security mediante programaciĆ³n



spring security remember me example (1)

Tuve que agregar la siguiente anotación a la clase de configuración: @EnableGlobalMethodSecurity(prePostEnabled=true)

Tengo la aplicación Spring WebMVC utilizando las anotaciones @PreAuthorize y @PostAuthorice en los métodos de controlador. Pero estas anotaciones se ignoran porque no las he habilitado en mi seguridad de primavera.

Si tuviera un spring-security.xml podría habilitarlo con la siguiente línea:

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

Desafortunadamente tengo una configuración completa basada en anotaciones. Spring-Security en principio funciona en mi aplicación.

Mi pregunta: ¿Cómo puedo habilitar la anotación previa a la publicación con una configuración MVC basada en anotaciones?

  • Spring-Version: 4.0.5.RELEASE
  • Spring-Security-Version: 3.2.4.RELEASE

Esta es mi implementación de WebSecurityConfigurerAdapter :

@Configuration @EnableWebMvcSecurity() public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired DataSource dataSource; @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { auth.jdbcAuthentication() .dataSource(dataSource) .passwordEncoder(new ShaPasswordEncoder(256)) .usersByUsernameQuery("select username,password, enabled from user where USERNAME=?") .authoritiesByUsernameQuery("select u.username, r.name from user u, role r, user_has_role uhr where u.id = uhr.user_id and r.id = uhr.role_id and u.username = ? "); } @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/resources/**").permitAll() .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .permitAll() .defaultSuccessUrl("/", true) .and() .logout() //.logoutUrl("/logout") //this is the default // Call the URL invalidate_session after logout... .logoutSuccessUrl("/invalidate_session") .permitAll() .and() // @see http://docs.spring.io/spring-security/site/docs/3.2.x/reference/htmlsingle/#csrf-configure .csrf().disable(); } }

Mi MessageSecurityWebApplicationInitializer está vacío:

public class MessageSecurityWebApplicationInitializer extends AbstractSecurityWebApplicationInitializer { }