Springboot Spring Security Ldap Страница входа не отображается - PullRequest
0 голосов
/ 27 февраля 2020

Я создал приложение Springboot с зависимостями безопасности Spring. Я следую некоторым учебникам, и большинство из них говорят то же самое. Я добавляю необходимые зависимости и затем создаю файл websecurityconfig. Я создал их, и когда я запускаю проект на локальном хосте, он работает нормально. Я перенес свое приложение на удаленный сервер, и я не вижу страницу входа. Вот мой список зависимостей


    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-security</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.ldap</groupId>
                <artifactId>spring-ldap-core</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-ldap</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.session</groupId>
                <artifactId>spring-session-core</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-test</artifactId>
                <scope>test</scope>
            </dependency>

А вот мой конфиг веб-безопасности


    @Configuration
    @EnableWebSecurity
    public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

         @Autowired
         LdapConfig ldapConfig;

        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http
                .authorizeRequests()
                .anyRequest().fullyAuthenticated()
                .and()
                .formLogin(); 

        }

        @Bean
        public UserDetailsContextMapper userDetailsContextMapper() {
            return new CustomUserDetailsContextMapper();
        }   

        @Override
        public void configure(AuthenticationManagerBuilder auth) throws Exception {
            LdapAuthenticationProviderConfigurer<AuthenticationManagerBuilder>.ContextSourceBuilder contextSourceBuilder = auth.ldapAuthentication()
                    .userSearchBase(ldapConfig.getUserSearchBase())
                    .userSearchFilter(ldapConfig.getUserSearchFilter())
                    .groupSearchBase(ldapConfig.getGroupSearchBase())
                    .groupSearchFilter(ldapConfig.getGroupSearchFilter())
                    .groupRoleAttribute(ldapConfig.getGroupRoleAttribute())
                    .userDetailsContextMapper(userDetailsContextMapper())
                    .contextSource();

            if (ldapConfig.getPort() != null) {
                contextSourceBuilder.port(ldapConfig.getPort());
            }

            contextSourceBuilder 
                    .root(ldapConfig.getRoot())
                    .url(ldapConfig.getUrl())
                    .managerDn(ldapConfig.getManagerDn())
                    .managerPassword(ldapConfig.getManagerPassword());
        }

    }

Это съело много моего времени, любой Пожалуйста, помогите мне ...

1 Ответ

0 голосов
/ 27 февраля 2020

Получаете ли вы Not Authorized при попытке попасть на страницу входа в систему?

Потому что похоже, что вы требуете, чтобы кто-то уже прошел аутентификацию для доступа к нему.

 protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
            .anyRequest().fullyAuthenticated()
            .and()
            .formLogin(); 

    }

Вы Потребуется что-то похожее на

 protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
            .antMatchers("/login").permitAll()
            .anyRequest().fullyAuthenticated()
            .and()
            .formLogin(); 

    }

, чтобы обеспечить доступ к странице входа.

...