Próbuję zrobić przykład używając wiosennego buta ze sprężynowym zabezpieczeniem. Moim pomysłem jest stworzenie aplikacji internetowej, a także zapewnienie API, chciałbym mieć oba zabezpieczenia; więc muszę utworzyć konfigurację zabezpieczeń sieci web http, ale to nie działa.Spring Boot + Security + Multi HTTP Konfiguracja sieci
Podążyłem za tym linkiem http://docs.spring.io/spring-security/site/docs/3.2.x/reference/htmlsingle/#multiple-httpsecurity, ale bez powodzenia. I otrzymuję ten błąd:
Błąd podczas tworzenia komponentu bean o nazwie 'webSecurityConfiguration': Injection of autnostified dependencies failed; wyjątek zagnieżdżonych jest java.lang.IllegalStateException: Nie można stosować do org.springframework.security.config.annotation.authentication.configurers.provisioning.InMemoryUserDetailsManagerConfigurer już wybudowany obiekt o
konfiguracji, które używam to:
@Configuration
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
@EnableGlobalAuthentication
@EnableGlobalMethodSecurity(securedEnabled = true)
public class WebSecurityConfiguration {
@Autowired
protected void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("12345").roles("USER").and()
.withUser("admin").password("12345").roles("USER", "ADMIN");
}
@Configuration
@Order(1)
public static class ApiConfigurationAdapter extends
WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/api/**")
.authorizeRequests()
.anyRequest().hasRole("ADMIN")
.and()
.httpBasic();
}
}
@Configuration
@Order(2)
public static class WebConfigurationAdapter extends
WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
web
.ignoring()
.antMatchers("/resources/**");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/home").permitAll()
.anyRequest()
.authenticated()
.and()
.formLogin()
.loginPage("/login").permitAll()
.and()
.logout().permitAll();
}
}
}
góry dzięki