java - 在一个 SpringBoot 应用程序中同时使用 JWT 和表单身份验证?
问题描述
我有一个使用弹簧安全性的弹簧启动应用程序。我实现了基于表单的身份验证,它运行良好。我希望该应用程序充当我构建的 Angular 应用程序的后端。我知道 CORS,但是如何将 JWT auth 添加到现有的 Spring Boot 应用程序中,是否推荐。
解决方案
我会推荐 AOP 概念来验证/验证您的 jwt 令牌。
首先你需要创建一个自定义注释。将其命名为 JWTsecured
@Component
@Target(value = {ElementType.METHOD, ElementType.TYPE})
@Retention(value = RetentionPolicy.RUNTIME)
public @interface JwtSecured {
}
现在你有一个控制器,你的 api 需要 JWT 保护。
@RestController
public class YourController {
@GetMapping(value="/testApi")
@JWTsecured
public void isTestApi() {
}
}
现在您必须编写一个方面来验证您的令牌......
@Component
@Aspect
public class JWTsecuredAspect {
@Around(value =" @within(com.JWTSecured) || @annotation(com.JWTSecured)")
public Object execute(ProceedingJoinPoint joinPoint) throws Throwable {
String token = request.getHeader("Authorization");
if(!isTokenValidated(token)){
throw CustomException("Invalid Token.")
}
}
}
这就是您可以将它与 auth 一起使用的方式。还有其他几种方法。随时联系
推荐阅读
- powershell - 通过powershell从环境变量中删除一个项目
- email - 如何将 cognos 报告动态调度到不同的电子邮件
- c++ - 关于循环冗余代码的初学者问题
- wpf - 我是从实体框架模型创建模型还是编辑实体框架模型并在 MVVM 中使用它们?
- c - 为什么 Fread 以相反的顺序读取 unsigned-int?
- ruby - Sinatra::Reloader 不会在 Docker 容器中重新加载文件
- java - 在 java 中的 AWS lambda 函数中包含 Access-control-header
- android - 多个textView一起下移
- php - php在特定元素之后将数组拆分为两部分
- php - PHP - 替换字符并计算