TokenEndpoint 中的 NullPointerException
Posted
技术标签:
【中文标题】TokenEndpoint 中的 NullPointerException【英文标题】:NullPointerException in TokenEndpoint 【发布时间】:2021-08-05 00:06:54 【问题描述】:LE:我最初认为这与 JPQL 查询有关 - 请参见下文。
我正在努力解决一个问题,但我似乎找不到任何解决方案。我正在尝试在数据库中查找用户。搜索条件是用户名或电子邮件地址。用户可能没有用户名,所以我总是在我的CrudRepository
中获得NullPointerException
。我已经尝试过 JPQL 和原生查询,但我总是得到相同的结果。
我可以在 mysql Workbench 中成功运行本机查询 - 在 Java 中它会引发异常。
这是我使用本机查询时的存储库:
@Query(value = "select * from users u where " +
"(u.username is not null and u.username = :queryString) or " +
"(u.email_address is not null and u.email_address = :queryString)",
nativeQuery = true)
Optional<User> findByEmailAddressOrUsername(@Param("queryString") String queryString);
还有 JPQL:
@Query("select u from user u where " +
"(u.emailAddress is not null and u.emailAddress = ?1) or " +
"(u.username is not null and u.username = ?1)")
Optional<User> findByEmailAddressOrUsername(String queryString);
有什么建议吗?
非常感谢。
【问题讨论】:
您应该将异常堆栈跟踪附加到您的问题中 【参考方案1】:嗯,看来我终于找到了问题所在。这比我预期的要微妙得多。它与 JPQL 或 SQL 查询无关,它们非常好。问题实际上出在我的自定义TokenEnhancer
中,在那里我检查了我的UserDetails
。由于getUsername()
返回null(因为某些用户没有用户名,这将触发我之前提到的NullPointerException
。
【讨论】:
以上是关于TokenEndpoint 中的 NullPointerException的主要内容,如果未能解决你的问题,请参考以下文章
使用myeclipse tomcat插件部署web项目时报错 an internal error occurred during add deployment . java.lang.nullpoin
org.springframework.security.oauth2.provider.endpoint.TokenEndpoint handleException
Spring OAuth2中Token Endpoint的自定义
AWS Cognito oauth2/token 端点中的 405 方法不允许错误
使用 MVC 模式在 JSP 页面中的 HTML <table> 中显示 JDBC ResultSet - NullPointerException