具有spring-security的spring-boot项目不访问视图

时间:2016-04-29 00:54:00

标签: spring spring-security spring-boot

我启动了一个基于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

任何人都可以看到这种配置有什么问题?

1 个答案:

答案 0 :(得分:1)

将其添加到您的application.properties文件中: security.basic.enabled=false

默认情况下,所有内容都使用HTTP基本身份验证进行保护。

参考:http://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/security/SpringBootWebSecurityConfiguration.html