如何解决如果作为参数注入,则在SecurityContext上出现Quarkus 1.7.2 security-jpa NullPointerException
遵循https://quarkus.io/guides/security-jpa指南。
在控制器中作为参数传递时,我无法获得@Context SecurityContext。
构建成功,SecurityContext上的NullPointerException仅在击中端点且凭据有效时发生。
但是当我在上面声明时,它起作用了。不再为null。这是一个错误吗?还是对我错过的事情有解释?
@RestController
@RequestMapping(value = "security",produces = MediaType.APPLICATION_JSON,consumes = {
MediaType.APPLICATION_JSON })
public class SecurityDemoController {
@GetMapping("/public")
public String publicPath() {
return "hello public";
}
@Secured("admin")
@GetMapping("/admin")
public String adminPath() {
return "hello admin";
}
// worked this way
@Context
private SecurityContext sec;
// did not work when passing it as parameter,was emitting a NullPointerException
@Secured("user")
@GetMapping("/me")
public String me(
// @Context
// SecurityContext securityContext
) {
SecurityContext scheme = sec;
System.out.println(scheme);
Principal principal = sec.getUserPrincipal();
return "hello " + principal.getName();
}
}
您可以看到我正在使用quarkus spring-web和spring-security扩展,但我认为这不会引起此类问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。