如何向Spring MVC控制器方法添加自定义安全注释

如何向Spring MVC控制器方法添加自定义安全注释,第1张

如何向Spring MVC控制器方法添加自定义安全注释

我们还在项目中创建了一个自定义注释。您需要完成一些面向方面的编程。

首先,您需要创建自己的注释来标记您的方法,如下所示:

public @interface CustomSecurityAnnotation {}

然后,您必须编写在执行方法时触发的逻辑。您为此写了一个 方面

@Aspect@Componentpublic class CustomSecurityAspect {    @Pointcut("@annotation(my.package.CustomSecurityAnnotation)")    private void customSecurityAnnotation() {    }    @Around("my.package.CustomSecurityAspect.customSecurityAnnotation()")    public Object doSomething(ProceedingJoinPoint pjp) throws Throwable {        HttpServletRequest req = getRequest();        // Check header values        // Throw Spring's AccessDeniedException if needed        return pjp.proceed();    }    private HttpServletRequest getRequest() {        ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();        return sra.getRequest();    }}

如您所见,我已经包含了一种检索当前HTTP请求的方法,因此您可以轻松地检索要检查的标头。

如果是

AccessDeniedException
,Spring会自动将响应状态代码设置为HTTP 403。

不要忘记

@EnableAspectJAutoProxy
在您的
@Configuration
课程中启用来启用方面。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5621886.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存