我启动了一个基于spring-boot的新项目,使用这个工作配置类来实现另一个项目的spring-security:
@Configuration
@ComponentScan
@EnableWebMvcSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService userDetailsService;
@Autowired
private PasswordEncoder passwordEncoder;
@Autowired
private PermissionEvaluator permissionEvaluator;
@Override
public void configure(HttpSecurity http) throws Exception {
http
.csrf()
.disable()
.authorizeRequests()
.antMatchers("/").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/signin")
.loginProcessingUrl("/login").permitAll()
.and()
.logout()
.logoutUrl("/logout")
.logoutSuccessUrl("/");
}
@Override
public void configure(WebSecurity web) throws Exception {
DefaultWebSecurityExpressionHandler handler = new DefaultWebSecurityExpressionHandler();
handler.setPermissionEvaluator(permissionEvaluator);
web.expressionHandler(handler);
}
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.userDetailsService(userDetailsService)
.passwordEncoder(passwordEncoder);
}
}
当我在tomcat服务器中部署项目时没有错误,并尝试访问应用程序,而不是索引页面,我得到一个弹出窗口,询问我的用户名和密码。
项目的完整代码是:https://github.com/klebermo/basic_webapp
任何人都可以看到这种配置有什么问题?
答案 0 :(得分:1)
将其添加到您的application.properties文件中:
security.basic.enabled=false
默认情况下,所有内容都使用HTTP基本身份验证进行保护。