6
respostas

ERRO - Acesso ao H2

Estou tentando acessar o console do H2 no browser, mas não consigo visualizar a interface do mesmo. Segue o meu método onde ja tentei uma solução e mesmo assim não consigo acessar.

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
        .antMatchers(HttpMethod.GET, "/topicos").permitAll()
        .antMatchers(HttpMethod.GET, "/topicos/*").permitAll()
        .antMatchers(HttpMethod.POST, "/auth").permitAll()
        .antMatchers(HttpMethod.GET, "/actuator/**").permitAll()
        .antMatchers(HttpMethod.DELETE, "/topicos/*").hasRole("MODERADOR")
        .antMatchers("/h2-console/**").permitAll()
        .anyRequest().authenticated()
        .and().csrf().disable()
        .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
        .and().headers().frameOptions().sameOrigin()
        .and().addFilterBefore(new AutenticacaoViaTokenFilter(tokenService, usuarioRepository), UsernamePasswordAuthenticationFilter.class);
    }
6 respostas

Oi Renan,

Da uma olhadinha nesse topico que la mostra como liberar acesso ao h2: https://cursos.alura.com.br/forum/topico-h2-console-nao-funciona-apos-implementacao-da-autenticacao-jjwt-119693

Oi, Rodrigo!

Tudo bem? Eu ja fiz esse passo que você me falou e nada de aparecer, preciso fazer algo a mais que isso?

Posta aqui o codigo completo da sua classe SEcurityConfigurations.

Quando voce acesso no browser o he console o que aparece na tela e no console do eclipse?

Oi, Rodrigo!

No console do eclipse não aparece nada. E no browser aparece as imagens bloqueadas com a frase "A conexão com localhost foi recusada."

@EnableWebSecurity
@Configuration
@Profile(value = {"prod", "test"})
public class SecurityConfigurations extends WebSecurityConfigurerAdapter {

    @Autowired
    private AutenticacaoService autenticacaoService;

    @Autowired
    private TokenService tokenService;

    @Autowired
    private UsuarioRepository usuarioRepository;

    @Override
    @Bean
    protected AuthenticationManager authenticationManager() throws Exception {
        return super.authenticationManager();
    }

    //Configuracoes de autenticacao
    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(autenticacaoService).passwordEncoder(new BCryptPasswordEncoder());
    }

    //Configuracoes de autorizacao
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
        .antMatchers(HttpMethod.GET, "/topicos").permitAll()
        .antMatchers(HttpMethod.GET, "/topicos/*").permitAll()
        .antMatchers(HttpMethod.POST, "/auth").permitAll()
        .antMatchers(HttpMethod.GET, "/actuator/**").permitAll()
        .antMatchers(HttpMethod.DELETE, "/topicos/*").hasRole("MODERADOR")
        .antMatchers("/h2-console/***").permitAll()
                    .anyRequest().authenticated()
                    .and().csrf().disable()
                    .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
                    .and().headers().frameOptions().sameOrigin()
                    .and().addFilterBefore(new AutenticacaoViaTokenFilter(tokenService, usuarioRepository), UsernamePasswordAuthenticationFilter.class);
    }


    //Configuracoes de recursos estaticos(js, css, imagens, etc.)
    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/**.html", "/v2/api-docs", "/webjars/**", "/configuration/**", "/swagger-resources/**");
    }

}

Essa linha sua esta com tres *:

.antMatchers("/h2-console/***").permitAll()

Nao sei se isso interfere, mas vale ajustar para verificar :D

Eu ajustei aqui esse detalhe, mas não resolvi o problema.