Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Duvida a respeito do WebSecurityConfig e anotação Bean

E ae pessoal, tudo beleza?

Estou precisando de ajuda, eu sei que a formação Spring saiu do ar, mas como eu estava proximo de finalizar ela, continuei fazendo os cursos, agora estou tendo um problema que não consigo resolve,r ao criar a classe WebSecurityConfig, toda vez que tento subir o servidor, o servidor me volta o erro abaixo.


APPLICATION FAILED TO START


Description:

The bean 'delegatingApplicationListener', defined in class path resource [br/com/alura/mvc/mudi/WebSecurityConfig.class], could not be registered. A bean with that name has already been defined in class path resource [org/springframework/security/config/annotation/web/configuration/WebSecurityConfiguration.class] and overriding is disabled.

Action:

Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

Não sei como resolver isso, será que ainda tem suporte na Alura pra esse problema?

3 respostas
solução!

Boa tarde Delcleciano.

Faça um teste adicionando a chave abaixo no application.properties da sua aplicação:

spring.main.allow-bean-definition-overriding=true

Obrigado Fernanda, a sua ajuda me ajudou a configurar o spring security, mas eu também precisei mexer no pom.xml

coloquei essas dependencias abaixo e deu certo

  <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>2.0.1.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>6.0.13.Final</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.el</artifactId>
        <version>3.0.0</version>
    </dependency>

tambem tive que ajustar o a classe java WebSecurityConfig estava dando muitos erros nas anotações Bean, então comecei a utilizar essa implementação SecurityConfiguration, que achei aqui no fórum da Alura, quem tiver precisando só utilizar.

package br.com.alura.mvc.mudi;

import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.security.config.Customizer; 
import org.springframework.security.config.annotation.web.builders.HttpSecurity; 
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; 
import org.springframework.security.core.userdetails.User; 
import org.springframework.security.core.userdetails.UserDetails; 
import org.springframework.security.provisioning.InMemoryUserDetailsManager; 
import org.springframework.security.web.SecurityFilterChain;

@Configuration 
@EnableWebSecurity 

public class SecurityConfiguration {
    @Bean
    public SecurityFilterChain defaultSecurityFilterChain(HttpSecurity http)
            throws Exception {
        http
            .authorizeHttpRequests((authorize) -> authorize
                .anyRequest().authenticated()
            )
            // Form login handles the redirect to the login page from the
            // authorization server filter chain
            .formLogin(Customizer.withDefaults());

        return http.build();
    }

        @Bean
        public InMemoryUserDetailsManager userDetailsService() {
            UserDetails user = User.withDefaultPasswordEncoder()
                    .username("root")
                    .password("root")
                    .roles("ADM")
                    .build();
            return new InMemoryUserDetailsManager(user);
        }
}

Boa Delcleciano

Obrigada por compartilhar :)

Bons estudos