问题标签 [pointcut]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - Spring中一个简单的切入点表达式
我正在使用具有相同版本的 Spring 框架的 Spring security 3.2.0。Spring security 在我的项目中运行良好。为了保护我的 DAO 类(和其他)中的方法,我想使用以下切入点方法(在spring-security.xml
文件中)。
我希望指定的切入点表达式能够保护包内所有类中的所有方法,controller
并且只能由具有ROLE_ADMIN
指定权限的用户访问。
但是当我尝试使用这个表达式时,该过程在保存我的spring-security.xml
文件时终止,并出现以下异常。
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'pointcutMap' 抛出异常;嵌套异常是 java.lang.IllegalArgumentException:切入点格式不正确:期望在字符位置 26 处执行“名称模式”(控制器。*(..))^
我正在尝试遵循3.4.1元素部分的使用保护切入点添加安全切入点中的参考文档中指定的方法。<global-method-security>
在这种情况下,正确的表达式语法是什么?
编辑:
使用保护切入点添加安全切入点
保护切入点的使用特别强大,因为它允许您通过简单的声明将安全性应用于许多 bean。考虑以下示例:
这将保护在应用程序上下文中声明的类在com.mycompany
包中且类名以“Service”结尾的所有 bean 方法。只有具有该ROLE_USER
角色的用户才能调用这些方法。与 URL 匹配一样,最具体的匹配必须在切入点列表中排在第一位,因为将使用第一个匹配表达式。安全注释优先于切入点。
复制并粘贴参考文档中解释的部分(因为有人可能会发现滚动文档很乏味)。
java - 切入点涵盖了哪些方法?
是否有可能知道 AspectJ 中的切入点涵盖了哪些方法?
这个问题的背景是我有一个涵盖所有方法的切入点(除了它自己的方法):
一旦应用程序启动,我希望能够为切入点所涵盖的每个方法创建一个方法签名列表。那可能吗?
spring - java.lang.IllegalArgumentException: ::0 处的错误找不到引用的切入点
我对 Spring AOP 真的很陌生。在我的应用程序中,我配置HiddenHttpMethodFilter
了将方法参数转换为 HTTP 方法,并使 Spring 能够处理其他 HTTP 方法,例如 等DELETE
,PUT
包括GET
和POST
.
有时需要禁用此功能,尤其是在处理多部分请求时。为了在特定请求时禁用它(关于 mulripart),我使用了以下代码。
在application-context.xml
文件中,需要以下 xml。
此代码取自这篇文章的“多部分解析器禁用方面”部分。
它旨在通过HiddenHttpMethodFilter
将GET
参数multipartResolverDisable=1
用作上面代码指定的查询字符串来禁用多部分处理,以便可以像往常一样使用公共multipartResolverDisable=1
文件上传(当作为查询字符串提供时)
实际的问题仍然不在图片中。此方法之前在以下环境中正常工作(使用 NetBeans 6.9.1)。
- 春天 3.2.0
- 带有 Servlet API 2.5 的 Apache Tomcat 6.0.26.6。
最近我用具有 Servlet API 3.0 的 Apache Tomcat 7.0.35 升级了 NetBeans 7.2.1。Spring 版本与之前相同- Spring 3.2.0。
通过此更新,上述方法导致以下异常。
其中isMultipartOperation()
是上述类中的最后一个方法。
代码可能会有一点小改动,但我对 AOP 知之甚少,无法在这段好看的代码中找出这个异常的原因。
这个异常的原因是什么?它必须与 Servlet API 做些什么吗?
java - 旧版 Spring 应用程序 - 切入点值是什么意思?
我“继承”了一个旧的 Spring 应用程序。目前它使用的是 Spring 2.5(只升级了一次),并希望进一步升级到 Spring 3。
我了解大部分应用程序配置。只有一个部分我“不是 100%”。我可以大致猜测它可能意味着什么,但我需要绝对确定,因此发布这个问题:
这是配置片段(取决于此处未显示的注释驱动事务管理器):
我的具体两个问题是:
- “执行(* ..ProductManager.(..))”是什么意思(我理解切入点的说法)
- 在建议的属性部分,我们说将事务应用于所有与保存*相关的方法,并且对于所有内容,只读都是错误的。谁能解释为什么该设置有意义?对于所有具有事务支持的方法(即仅保存 * 方法),它是否是附加且有效的说法,我也希望这些方法不是只读事务。或者它是否对包容性事务过滤器(在切入点中定义)的每种方法应用了不同的东西(即某种形式的事务支持)。
感谢您的任何澄清。拜托,没有一般的答案-我需要对此进行具体解释。
java - 访问aspectj中的私有字段
我正在尝试获取对象的私有字段的名称。当我对我的包的公共字段使用相同的切入点时,它工作得恰到好处。我的方面设置为特权。我想要更新类对象的字段。切入点:
建议:
我的切入点异常中的这一行出现异常:
spring - Spring AOP:JoinPoint 和 PointCut 有什么区别?
我正在学习面向方面的编程概念和 Spring AOP。我无法理解切入点和连接点之间的区别——它们对我来说似乎都是一样的。切入点是您应用建议的地方,而连接点也是我们可以应用建议的地方。那么有什么区别呢?
切入点的示例可以是:
什么可以是连接点的示例?
json - 如何确保在 Aspectj 和 AOP 中匹配相同连接点的两个切点的顺序建议
我打算使用 Spring AOP 使用 Spring Security。对于控制器类上的所有公共方法,它将有自己的切入点。这些方法将由类名和公共方法挑选出来,也许是部分参数签名。
我还想封装检查标头、良好 json、良好 json 请求对象和身份验证的代码,并将其插入控制器类的公共方法中。由于我将同时拥有 JSON-RPC 和 JSON-REST,因此访问上述公共方法的共有三个切入点。
Spring Security 将在所有方法上插入建议,JSON-RPC 切入点将处理该控制器类,而 JSON-REST 切入点将处理其控制器类。
如何保证两条建议的运行顺序?我希望安全的东西首先运行。
java - 使用 java.lang.reflection 的构造函数的 AspectJ 切入点
以下示例是对实际问题的简化,因为它试图尽可能地简化。
我有一个 java 接口,以及几个实现该接口的对象,例如:
这是我的程序的结构。通过使用 AspectJ,我想要一个映射来保存实现接口的每个对象。为此,我试图通过使用以下方面来捕获构造函数:
如果我使用以下方案创建形状,则此代码将起作用:
但是,我使用的是 java 语言反射,所以从技术上讲,我不调用“新”构造函数。相反,我找到包的路径,并创建传递带有类名的字符串的对象:
通过这样做,AspectJ 无法检测到我正在创建形状。我该如何解决?
spring - How can I make this @Pointcut expression work?
I'm really having problem in advicing methods with pointcuts expressions. I have the following configuration:
Spring 3.1.2.RELEASE
pom.xml
servlet.xml
the class I want to advice
it implements the UserDao
Interface which extends a GenericDao<T>
Interface
here's my Advice
which doesn't work. It means that when the UserDaoImpl's delete method is executed it isn't intercepted at all.
From Spring Documentation I read that spring proxies work with Interfaces so I tried to change the Pointcut definition as follow:
but nothing changes.
How can I intercept the .delete()
method of the UserDaoImpl
class?
statistics - 最常用的切入点
一般关于 AspectJ 和 AOP:
什么是最常用的切入点原语?
有这方面的统计吗?
我认为它可能是execution
和call
,对吗?
谢谢。