如何向 Spring MVC 控制器方法添加自定义安全注释
我正在使用Java 8,Spring MVC 4,Spring Boot和Gradle作为我的REST应用程序。
我想通过某些Spring MVC 4控制器中的自定义方法注释为我的REST应用程序添加安全性。
下面是一个基本示例。
主控制器.java
package myapp;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
@RestController
@RequestMapping("/")
public class HomeController {
@RequestMapping("/")
public String index() {
return "<h1>Hello, World!</h1><p>Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum</p>";
}
@CustomSecurityAnnotation
@RequestMapping("/secure")
public String secure() {
return "<h1>Secured!</h1><p>Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum</p>";
}
}
我想运行一个自定义方法,该方法将检查传入REST请求的标头,查看HTTP标头,提取提供的值(如果提供了值),并针对该值运行代码以验证请求,然后再允许该方法继续。如果授权无效,注释应能够覆盖响应并提供 HTTP 401 或 403,并在我决定注释自定义方法成功通过时允许注释下的方法运行。CustomSecurityAnnotation
Authorization
我意识到我可以对其他MVC注释做类似的事情,但我正在考虑将自定义逻辑打包到一个方法中,放在一个注释中,以便在我选择的任何控制器上的任何方法上使用。PreAuthorize
谢谢!