如何禁用grails 3.x中的基本http auth?

时间:2015-09-05 08:30:46

标签: spring-security spring-boot grails-3.0

我已经开始使用grails 3并使用spring boot starter security。 这是我的安全配置。

@Configuration
@EnableWebSecurity
@EnableWebMvcSecurity
@EnableGlobalMethodSecurity(jsr250Enabled = true)
class CustomSecurityConfig extends WebSecurityConfigurerAdapter{

    CustomUserDetailsService userDetailsService

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth)
            throws Exception {
        auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder())
    }

    @Bean
    CustomAuthenticationProvider authenticationProvider() {
        CustomAuthenticationProvider provider = new CustomAuthenticationProvider();
        return provider;
    }

    @Override
    public void configure(WebSecurity web) throws Exception {
        // This is here to ensure that the static content (JavaScript, CSS, etc)
        // is accessible from the login page without authentication

        web.ignoring().antMatchers("/assets/**");
        web.ignoring().antMatchers("/views/**");
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        println "configuring security"
        http.httpBasic().disable()
        http.authorizeRequests().expressionHandler()
        http.formLogin().loginPage("/login").permitAll().and().logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
                .logoutSuccessUrl("/").deleteCookies("JSESSIONID")
                .invalidateHttpSession(true);
        http.authorizeRequests().antMatchers("/").permitAll();
        http.csrf().disable();

    }

    @Bean
    public BCryptPasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }

}

你们看到有什么错误吗?有了这个配置,每当我打开我的根URL,它应该重定向到登录页面,一直要求弹出认证!任何想法如何解决? 干杯!

2 个答案:

答案 0 :(得分:0)

您应该使用其中一个@EnableWebSecurity@EnableWebMvcSecurity@EnableGlobalMethodSecurity注释。

  

但是,仅在使用@EnableWebSecurity,@ EnableGlobalMethodSecurity或@EnableGlobalAuthentication注释的类中配置AuthenticationManagerBuilder非常重要。否则会产生不可预测的结果。

参考文献:

http://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#hello-web-security-java-configuration

答案 1 :(得分:0)

知道了,

问题是我的安全配置没有自动注册。我必须在resources.groovy中创建bean并修复它。

customSecurityConfig(CustomSecurityConfig)

我让上下文扫描了我的安全配置并修复了它。 干杯!