无法在 Spring 应用程序中登录 H2 控制台
Posted
技术标签:
【中文标题】无法在 Spring 应用程序中登录 H2 控制台【英文标题】:Unable to login H2 console in spring application 【发布时间】:2019-06-23 09:53:42 【问题描述】:在我的 spring 应用程序中,我添加了 devtools 依赖项。
所以,我可以拥有如下 H2 控制台:
我还没有为 H2 做任何额外的配置。所以我希望“连接”按钮应该让我进入数据库。但相反,我得到:
编辑:我已将 Spring Security 实现为
protected void configure(HttpSecurity http) throws Exception
http
.authorizeRequests()
.antMatchers("/path1", "/path2")
.access("hasRole('ROLE_USER')")
.antMatchers("/", "/**").access("permitAll")
.and()
.formLogin()
.loginPage("/login");//the path where custom login page will be provided
我在这里错过了什么?
【问题讨论】:
看起来是安全配置问题,请分享您的安全配置。 安全配置对我来说很好,你能粘贴你得到的 h2 控制台的访问 url 和 whitelabel 错误吗? localhost:8080/h2-console/…, localhost:8080/h2-console/… 【参考方案1】:页面清楚地显示错误是403(禁止)。请检查您的安全配置。
如果您使用的是spring security,请检查扩展org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter
的配置类,在覆盖方法中:
@Override
protected void configure(HttpSecurity http) throws Exception
//super.configure(http);
http
.authorizeRequests()
.antMatchers("/").permitAll() // you can allow the root endpoint ( also will be containing the default /h2-console endpoint ) for all users
// or put some role restriction on the specific "/h2-console" endpoint to the admin user you are going to be logging in with.
.antMatchers("/admin/**").hasRole("ADMIN")
.and()
.csrf().disable() //rest of the configs below according to your needs.
.headers().frameOptions().disable()
.and()
.formLogin();
【讨论】:
以上是关于无法在 Spring 应用程序中登录 H2 控制台的主要内容,如果未能解决你的问题,请参考以下文章
使用 MyBatis + H2 配置 Spring Boot 身份验证/登录