1
我正在创建一个自定义注释,用于检查用户是否被授权对某个产品ID进行操作。该注释将放置在我的控制器中的方法中,该方法在Spring托管的应用程序中运行。授权的自定义注释
@ProductDemand(id = {productId})
@RequestMapping(value = "/product/{productID}", method = RequestMethod.PUT)
public Product update(Product toUpdate) {
User user = getUserFromHeaderValues();
}
在这种情况下的@ProductDemand是自定义的注释,我将需要创建。如果用户没有被授权作为给定ID的产品,我想返回一个403
我至今是一个注释:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ProductDemand {
String productId;
}
我也有一个服务授权这些值:
public class AuthorizationService {
public boolean authorize(UUID userUUID, String productID) {
//do auth
}
}
我想要做的就是能够把该批注上的任何方法,并自动调用AuthorizationService的授权方法。很显然,在获得价值观和连接授权服务之间会有一些关系,但我目前不知道如何去做。最好是,我希望能够将所有这些都打包,并允许某人能够将其导入到他们的项目中,并且只需添加注释以及必要时使用bean也可以使用它。
我从来没有写过任何自定义注释,所以如果这没有意义,请让我知道。
感谢, 菲尔
你看着春季安全的例子吗?它提供了一个框架来实现你正在尝试做的事情。 – jalynn2
请检查我的答案http://stackoverflow.com/a/13420500/241986,但老实说,我不记得3年后的细节:-)在那个答案我评估布尔变量btw –