当前位置: 首页 > news >正文

电子商务网站建设合同范本网站开发制作的流程

电子商务网站建设合同范本,网站开发制作的流程,多少钱网站建设,百度权重5的网站能卖多少钱在Spring框架中,可以使用面向切面编程(AOP)来实现注解鉴权。这通常涉及到定义一个切面(Aspect),该切面会在方法执行前进行拦截,并根据注解value值来决定是否允许执行该方法。 简单思路&#xf…

在Spring框架中,可以使用面向切面编程(AOP)来实现注解鉴权。这通常涉及到定义一个切面(Aspect),该切面会在方法执行前进行拦截,并根据注解value值来决定是否允许执行该方法。

简单思路:

权限标识如:"business:project:list" 字段保存在菜单表,用户表与菜单表关联。如果自定义注解中的参数值@RequiresPermissions("business:project:list") 存在于当前用户所拥有的权限中,则该请求允许访问该方法,否则拒绝。

首先,需要定义一个注解 RequiresPermissions

/*** 权限认证:必须具有指定权限才能进入该方法* * @author digipower**/
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface RequiresPermissions {/*** 需要校验的权限码*/String[] value() default {};}

然后,你需要定义一个切面,该切面会拦截带有 @RequiresPermissions 注解的方法

import java.lang.reflect.Method;import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.aspectj.lang.reflect.MethodSignature;
import org.springframework.stereotype.Component;import com.digipower.component.security.annotation.RequiresLogin;
import com.digipower.component.security.annotation.RequiresPermissions;
import com.digipower.component.security.annotation.RequiresRoles;
import com.digipower.component.security.auth.AuthUtil;/*** 基于 Spring Aop 的注解鉴权*/
@Aspect
@Component
public class AuthAspect {/** 权限标识 */private static final String ALL_PERMISSION = "*:*:*";/*** 构建*/public AuthAspect() {}/*** 声明AOP签名*/@Pointcut(@annotation(com.bibo.test.RequiresPermissions))public void pointcut() {}/*** 环绕切入*/@Around("pointcut()")public Object around(ProceedingJoinPoint joinPoint) throws Throwable {// 获取签名MethodSignature signature = (MethodSignature)joinPoint.getSignature();// 校验 @RequiresPermissions 注解RequiresPermissions requiresPermissions = signature.getMethod().getAnnotation(RequiresPermissions.class);if (requiresPermissions != null) {// 获取当前用户的全部权限,可以从redis、Spring Security安全上下文等Set<String> permissionSet = getXX();for (String permission : requiresPermissions.value()) {if (!hasPermission(permissionSet, permission)) {throw new NotPermissionException(permission);}}}try {// 执行原有逻辑Object obj = joinPoint.proceed();return obj;} catch (Throwable e) {throw e;}}/*** 判断是否包含权限* * @param authorities*            权限列表* @param permission*            权限字符串* @return 用户是否具备某权限*/public boolean hasPermission(Collection<String> authorities, String permission) {return authorities.stream().filter().anyMatch(x -> ALL_PERMISSION.contains(x) || PatternMatchUtils.simpleMatch(x, permission));}
}

最后,在你的服务或控制器中,你可以使用

@RequiresPermissions注解来标记需要进行鉴权的方法

/*** 查询列表*/
@RequiresPermissions("business:project:list")
@GetMapping("/list")
public PageDataResult list(BizInfo bizInfo) {...return ..
}

这样,每当 list 方法被调用时,AuthAspect 会进行鉴权检查。如果鉴权失败,将抛出异常或返回错误信息,阻止方法的执行。

http://www.yayakq.cn/news/953168/

相关文章:

  • 前端开发做移动端的网站三合一网站怎么建立
  • 网站建设谈判wordpress做电商
  • 网站在阿里云备案wordpress更改了数据库密码错误
  • 广西网站建设在线做网站去哪里接单
  • 站长工具seo综合查询下载为什么没有人做像58一样的网站
  • 省网站建设抖音小程序商城
  • 做网站head.htm互联网软件开发是什么
  • 哈尔滨行业网站建设策划网站托管服务协议
  • 六盘水城乡住房建设厅网站小城镇建设网站并阐述观点
  • 网站建设从初级到精通朝青板块网站建设
  • 杭州做网站外包公司哪家好贵阳做个网站需要多少钱
  • 公司建设网站的优缺点智慧软文发稿平台
  • 网站优化建设深圳怎么搭建自己的网站后台
  • 天工网工程新希望官网如何做网站推广优化
  • 好大学网站设计南通网站建设方案
  • 电子商务网站建设与实践第一章课后网站开发费用多少
  • 成都网站建设公司是什么意思阿里云oss wordpress
  • 地产网站建设案例网站建设教程网
  • 门户网站建设工作汇报网页视频下载ios
  • 陕西企业营销型网站赣州网站建设哪家公司好
  • 网站促销广告wordpress自动保存
  • 优秀的电子商务网站饭店品牌建设
  • 网站广告图做多大为什么网站建设要将access数据库文件变成asa
  • 微门户网站建设开发区全力做好网站建设
  • 直播是网站怎么做阿里云主机价格表
  • 做学校法人年度报告的网站自己做的砍价网站
  • 做静态网站用什么软件dw个人网页制作代码
  • 免费素材网站psd网站建设后需要录入
  • 网站 建设方案漳州网站开发
  • 视频直播怎么做长宁网站建设优化seo