在spring boot中捕获用户名和密码错误的SQL连接错误
Posted
技术标签:
【中文标题】在spring boot中捕获用户名和密码错误的SQL连接错误【英文标题】:Catch the SQL connection error for wrong username and password in springboot 【发布时间】:2019-12-31 12:21:33 【问题描述】:我有一个与 mysql 连接的简单 springboot 应用程序,MySQL 凭据存储在 application.properties 中。
如果数据库用户名/密码不正确,我想记录这个错误。
所以我在我的主课上做了一个 try-catch
try
SpringApplication.run( DashboardUtilServerApplication.class, args );
catch(Exception ex)
if(ex.getCause() instanceof HibernateException)
//Line 11
代码将出现在第 11 行,但我如何确定此异常是由于错误的数据库凭据导致的,错误的数据库凭据是否存在某些特定异常。
我只是想向用户表明数据库凭据不正确。如果在 application.properties 中 DB 的用户名/密码不正确。
【问题讨论】:
你可以使用SQLException的getMessage方法,它会给出类似'invalid username/password' 为mysql连接创建@Configuration类,并定义Datasource@Bean,捕获异常。 "java.sql.SQLSyntaxErrorException: 拒绝用户访问" 您使用的通用 catch 子句以及稍后的自省是灾难的根源。在尝试执行您想要实现的目标之前,最好的问题是为什么要通知应用程序的最终用户数据库凭据错误?这样的功能有什么用例? 【参考方案1】:我认为没有特定的异常可以检查以确定这一点。但是,您可以检查异常消息以确定它是否是无效的凭据问题,方法是检查消息是否包含“拒绝访问”或任何确切消息。
【讨论】:
以上是关于在spring boot中捕获用户名和密码错误的SQL连接错误的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot / Spring Security中的错误401未经授权
带有undertow servlet容器的spring-boot应用程序中的“没有共同的密码套件”错误
Spring Boot Security:编码密码看起来不像 BCrypt