Globale Methode, die Sicherheit in den Frühling Starten

Ich habe einige Probleme beim Versuch, aktivieren Sie die Globale Methode, die Sicherheit in einer Spring-Boot-Anwendung.
Mehr oder weniger habe ich diese Konfiguration:

@ComponentScan
@Configuration
@EnableAutoConfiguration
@EnableConfigurationProperties
public class Main extends SpringBootServletInitializer {

    public static void main(String[] args) throws Exception {
        SpringApplication app = new SpringApplication(Main.class);
        app.setShowBanner(false);
        ApplicationContext context = app.run(args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Main.class);
    }
}

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true, proxyTargetClass = true)
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Bean
    @Override
    public AuthenticationManager authenticationManagerBean() throws Exception {
        return super.authenticationManagerBean();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        ...
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        ...
    }
}

@Controller
public class SampleController {

    @RequestMapping("/api/hello")
    @ResponseBody
    String hello() {
        return "Hello!";
    }

    @Secured(SecurityGrant.WRITE_PROJECT)
    @RequestMapping("/api/bye")
    @ResponseBody
    String bye() {
        return "Bye!";
    }
}

Die @Secure Anmerkungen sind OK arbeiten an Dienstleistungen, aber nicht im Controller, so wie ich hier gelesen habe (http://docs.spring.io/spring-security/site/faq/faq.html#faq-method-security-in-web-context) ich glaube da liegt Methode Sicherheit wird nur konfiguriert im root-Kontext Anwendung und nicht in dem für das servlet.
Aber ich kann nicht finden, die Möglichkeit, dies über die Java-Konfiguration, anstelle der Verwendung einer web.xml Datei.
Irgendwelche Ideen?

Update:

Wie schon in den Kommentaren, Methoden, sollten öffentlich sein werden umgeleitet.

  • Nicht die controller-Methoden müssen public sein, um Proxy für @Secured?
  • Das ist es! Sie meinen Tag gerettet.
Schreibe einen Kommentar