带有Angular 7前端的Spring Boot-阻止未登录用户访问网站

时间:2018-12-22 19:18:53

标签: java angular spring spring-boot authentication

当人们没有使用Spring-Boot-Security登录时,我想阻止他们访问我的应用程序(Angular 7前端,Spring Boot后端)。我通过ldap对用户进行身份验证,并希望根据数据库条目设置角色,但让我们逐步进行此操作。因此,我现在要做的是用我的Spring-Boot-Security配置(但仍使用默认登录页面)替换默认的ldap登录(通过生成的密码)。我得到了以下代码:

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .antMatcher("/login")
            .authorizeRequests()
            .anyRequest().fullyAuthenticated()
            .and()
            .httpBasic();
        http.formLogin().defaultSuccessUrl("/", true);
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.authenticationProvider(activeDirectoryLdapAuthenticationProvider());
    }

    @Bean
    public AuthenticationManager authenticationManager() {
        return new ProviderManager(Arrays.asList(activeDirectoryLdapAuthenticationProvider()));
    }
    @Bean
    public AuthenticationProvider activeDirectoryLdapAuthenticationProvider() {
        ActiveDirectoryLdapAuthenticationProvider provider = new ActiveDirectoryLdapAuthenticationProvider(AD_DOMAIN, AD_URL);
        provider.setConvertSubErrorCodesToExceptions(true);
        provider.setUseAuthenticationRequestCredentials(true);
        return provider;
    }

现在默认情况下,当包含spring-boot-starter-security工件时,尝试访问任何页面时,每个人都将重定向到/login-页面。可悲的是,由于我用自己的配置覆盖了该配置,因此情况不再如此。我该如何让spring再次执行此操作(也可以访问也被阻止访问的frontend-pages)?

0 个答案:

没有答案