spring boot security 不允许我访问 h2-console
Posted
技术标签:
【中文标题】spring boot security 不允许我访问 h2-console【英文标题】:spring boot security doesn't let me access h2-console 【发布时间】:2020-11-11 11:05:39 【问题描述】:我正在尝试在 Spring Boot 中实现 JWT。出于某些调试目的,我需要 H2 控制台。
所以在我的 WebSecurityConfiguration 中我写道:
@Override
protected void configure(HttpSecurity httpSecurity) throws Exception
//httpSecurity.headers().frameOptions().disable();
httpSecurity.authorizeRequests().antMatchers("/h2").permitAll();
httpSecurity
.csrf().disable()
.authorizeRequests()
.antMatchers("/auth/check/username").permitAll()
.antMatchers("/auth/signup").permitAll()
.antMatchers("/auth/login").permitAll()
.anyRequest().authenticated().and()
.exceptionHandling().and().sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS);
httpSecurity.addFilterBefore(jwtRequestFilter, UsernamePasswordAuthenticationFilter.class);
在我的应用程序属性中,我有这个配置:
spring.h2.console.enabled=true
spring.h2.console.path=/h2
当我点击“:8080/h2”时,它给了我 403。
所以问题仍然存在,如何正确配置 Spring Boot Web Security。
包含/h2/**
后,我得到了这个用户界面:
【问题讨论】:
【参考方案1】:请尝试“h2”模式为:
httpSecurity.authorizeRequests().antMatchers("/h2/**").permitAll();
还有这个:
httpSecurity.headers().frameOptions().disable();
更多可以在这里找到:How to disable 'X-Frame-Options' response header in Spring Security?
【讨论】:
请再次检查问题 h2 cosole 加载正常,我在 Chrome(版本 84.0.4147.89)和 MS Edge 浏览器中试过,请检查一次 我不知道你是怎么做到的,但我需要这个:httpSecurity.headers().frameOptions().disable();
,我已经编辑了答案,接受它,然后我会接受这个作为答案以上是关于spring boot security 不允许我访问 h2-console的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security with Spring Boot:使用过滤器时允许未经身份验证的用户访问特定端点
如何允许用户在 Spring Boot / Spring Security 中仅访问自己的数据?
Spring Boot + Security:设置允许的来源时没有 Access-Control-Allow-Origin 标头