[
https://issues.apache.org/jira/browse/CXF-2345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12732610#action_12732610
]
Sergey Beryozkin commented on CXF-2345:
---------------------------------------
Hi
You probably don't need to deal with the application context.
With the fix being in (you can try 2.2.3-snapshot may be on Monday or tomorrow)
you won't need to change anything at all.
Without the fix, you can do :
1. interface ResourceInterface {
SubResource getSubResource();
}
public ResourceImpl implements ResourceInterface {
}
and it will work, I've confirmed it in the Spring security system test. In this
case you can still have @RolesAllowed on SubResource
2. public ResourceImpl {
@RolesAllowed(...)
@Path("sub")
public SubResource getSubResource() {...}
}
in your case it would be equivalent to putting it on the SubResource class,
because users would need to be authorized to start working with this
subresource, so I didn't recommend putting RolesAllowed on every SubResource
method
Does it clarify things a bit ?
cheers, Sergey
> Returning AOP/CGLIB proxy as Subresource throws Fault "object is not an
> instance of declaring class"
> ----------------------------------------------------------------------------------------------------
>
> Key: CXF-2345
> URL: https://issues.apache.org/jira/browse/CXF-2345
> Project: CXF
> Issue Type: Bug
> Components: REST
> Affects Versions: 2.2.2
> Reporter: Hendy Irawan
> Assignee: Sergey Beryozkin
> Fix For: 2.2.3, 2.3
>
>
> Test case:
> RootResource.java :
> public class RootResource {
> @Path("subresource")
> public abstract SubResource getSubResource();
> }
> In spring-beans.xml:
> <bean class="RootResource">
> <lookup-method name="getSubResource" bean="subResource" />
> </bean>
> <bean id="subResource" class="SubResource" />
> Then the AOP proxied SubResource:
> @RolesAllowed({"ROLE_USER"}) // activate Spring Security global method
> annotations
> public class SubResource {
> }
> Getting the /subresource will throw exception:
> org.apache.cxf.interceptor.Fault: object is not an instance of declaring
> class while invoking
> Tried this workaround but not working: Make SubResource implement an
> interface then on RootResource.getSubResource() use interface as the return
> type, not the class
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.