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

A conexão com localhost foi recusada

Estou com mesmo erro da solicitação Erro: A conexão com localhost foi recusada, porém a solução apresentada não resolveu pra mim. Meu projeto está na versão 3.1.0 e meu método está assim: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

14 respostas

Oi Thiago!

Pode detalhar melhor em que situação o erro acontece? Se possível manda um print também ;)

Estou usando o banco de dados H2 e desde que adicionei o Spring Security não consigo mais acessar o banco de dados. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Ah ok.

Dá uma olhadinha aqui: https://cursos.alura.com.br/forum/topico-acesso-h2-console-273328

Eu tinha visto as discussões, mas não funcionou pra mim. Meu Projeta está na versão mais atual, 3.1. Deve ter mudado alguma coisa. Insira aqui a descrição dessa imagem para ajudar na acessibilidade Antes de realizar os testes, está assim: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Agora é só adaptar para a nova versão do Spring Security:

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    http.csrf(csrf -> csrf.disable());
    http.sessionManagement(sm -> sm.sessionCreationPolicy(SessionCreationPolicy.STATELESS));
    http.authorizeHttpRequests(req -> req.requestMatchers("/h2-console/").permitAll());
    http.headers(headers -> headers.frameOptions(frame -> frame.sameOrigin()));

    return http.build();
}

Compilou sem erros, porém permanece bloqueado. Só que agora assim: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Acho que esqueci uma url:

http.authorizeHttpRequests(req -> {
    req.requestMatchers("/h2-console").permitAll();
    req.requestMatchers("/h2-console/**").permitAll();
});

Permanece mesmo erro =/ . Compilou normalmente. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

O próprio http://localhost:8080/ também está bloqueado. Então pode ser algo além do H2.

Compartilha teu projeto então, que fica mais fácil de achar o problema

Meu projeto está aqui: https://github.com/Tleofreitas/Api_Java_Alura.git

solução!

Na verdade descobri aqui que no caso do H2 a configuração precisa ser feita de outra forma. Adiciona mais esse método na sua classe de configurações de segurança:

@Bean
public WebSecurityCustomizer webSecurityCustomizer() {
    return (web) -> web.ignoring().requestMatchers(new AntPathRequestMatcher("/h2-console/**"));
}

E pode deixar o outro método como estava mesmo:

//Processo de Autenticação Stateless
@Bean // Exportar para que seja possível injetar em outra classe
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    return http
            .sessionManagement(sm -> sm.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
            .headers(headers -> headers.frameOptions(frame -> frame.sameOrigin()))
            .csrf(csrf -> csrf.disable())
            .build();
}

Obs: no seu projeto tem classes duplicadas (acho que você moveu os pacotes paciente, medico e endereco para dentro do pacote domain, mas os antigos pacotes ainda estão lá com as mesmas classes)

Boa! Agora sim. Muito obrigado pelo esforço em ajudar!

Apenas para compartilhar como sigo por aqui.

Eu também estava com problemas e copiei esse codigo como indicado pelo instrutor e tbm não funcionou:

@Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http.csrf(csrf -> csrf.disable()); http.sessionManagement(sm -> sm.sessionCreationPolicy(SessionCreationPolicy.STATELESS)); http.authorizeHttpRequests(req -> req.requestMatchers("/h2-console/").permitAll()); http.headers(headers -> headers.frameOptions(frame -> frame.sameOrigin()));

return http.build();

}

Mas eu alterei o "/h2-console/" para "/login" e funcionou, retornou 200. O que ficou diferente foi que com uma senha errada ainda me retorna o 403 mas sem exibir um response.

Mas utilizando a ultima solução funcionou tudo certinho. Obrigado!