я исследую немного весны.
я наткнулся на весеннюю загрузку для легких конечных точек, см .:
@Controller
@EnableAutoConfiguration
public class SampleController {
@RequestMapping("/sample")
@ResponseBody
String sample() {
return "Hello sample!";
}
@RequestMapping("/sample2")
@ResponseBody
String sample2() {
return "Hello sample secured!";
}
}
логически конечные точки доступны на локальном хосте: 8181 / sample
но при использовании Spring Security «защищенная» конечная точка стала недоступной, потому что страница входа дает мне 404
Мой класс безопасности выглядит следующим образом:
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/sample" ).permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
@Bean
@Override
public UserDetailsService userDetailsService() {
UserDetails user =
User.withDefaultPasswordEncoder()
.username("user")
.password("password")
.roles("USER")
.build();
return new InMemoryUserDetailsManager(user);
}
}
Я могу получить доступ к / sample , поскольку он не защищен. но не может получить доступ к / sample2 , поскольку он перенаправляет на / login
я настраиваю свой класс безопасности в соответствии с этим руководством: https://spring.io/guides/gs/securing-web/