lukaszlenart opened a new pull request, #1572: URL: https://github.com/apache/struts/pull/1572
## Summary Introduces a configurable `ProxyService` interface and `StrutsProxyService` implementation for detecting and resolving Spring AOP/Hibernate proxies. Fixes [WW-5514](https://issues.apache.org/jira/browse/WW-5514) ### Key Changes - **ProxyService interface** with `isProxy`, `ultimateTargetClass`, and `resolveTargetMember` methods - **StrutsProxyService** implementation using configurable caches - **ProxyCacheFactory** and **StrutsProxyCacheFactory** for cache management - Integration into `ChainingInterceptor`, `ParametersInterceptor`, and `SecurityMemberAccess` - **Integration test** with Spring AOP proxied action chaining - Configuration constants for proxy cache type and size ### Proxy Types Supported - Spring CGLIB proxies (class-based) - Spring JDK dynamic proxies (interface-based) - Hibernate entity proxies - Member resolution for allowlist checking ### Configuration New properties in `default.properties`: ```properties struts.proxy.cacheType=basic struts.proxy.cacheMaxSize=10000 struts.proxy.cacheFactory=struts struts.proxyService=struts ``` ### Test Plan - [x] Unit tests for `StrutsProxyService` - [x] Unit tests for `StrutsProxyCacheFactory` - [x] Unit tests for `SecurityMemberAccessProxyTest` - [x] Integration test `SpringProxyActionChainingTest` - [ ] Manual testing with Spring AOP proxied actions 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
