首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中使用注解进行授权检查

在Java中使用注解进行授权检查
EN

Stack Overflow用户
提问于 2014-08-12 13:19:59
回答 1查看 563关注 0票数 2

我的类中有一些类似如下的方法:

代码语言:javascript
复制
addOrder(long orderId){...}
updateOrder(long orderId, int qty){...}
deleteOrder(long orderId){...}

我想给它们添加授权行为。例如:只有当你是订单的所有者时,你才能updateOrder。只有当你是付费用户时,你才能使用addOrder。只有当你的订单的状态是‘新的’,你才能deleteOrder。

做这件事最好的方法是什么?我们能用注解做到这一点吗?

代码语言:javascript
复制
@checkAuthorization
addOrder(long orderId){...}

@checkAuthorization
updateOrder(long orderId, int qty){...}

@checkAuthorization
deleteOrder(long orderId){...}

checkAuthorization注释的存在本身应该导致调用一个自定义方法,我将在其中实现该方法,以检查此调用是否被允许。

如果没有注解,还有其他的最佳实践吗?

如果重要的话,这段代码存在于web应用程序(Struts-1)中。

EN

回答 1

Stack Overflow用户

发布于 2019-09-17 15:58:43

像这样的检查可以用面向方面编程(AOP)来执行。一个实际的实现是Spring Security。您还可以使用访问控制列表或自定义实现来检查object permissions。为此,您可以使用Spring表达式语言引用参数:

代码语言:javascript
复制
@PreAuthorize("#c.name == authentication.name")
public void doSomething(@P("c") Contact contact);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25256670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档