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]

Reply via email to