Author: sergeyb
Date: Tue Aug 20 19:00:10 2013
New Revision: 1515922
URL: http://svn.apache.org/r1515922
Log:
[CXF-5212] Checking for superclass when looking for context setters, patch on
behalf of Thorsten Hoeger applied
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/AbstractResourceInfo.java
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/Injectable.java
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRSSpringSecurityInterfaceTest.java
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/SecureBookStore.java
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/AbstractResourceInfo.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/AbstractResourceInfo.java?rev=1515922&r1=1515921&r2=1515922&view=diff
==============================================================================
---
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/AbstractResourceInfo.java
(original)
+++
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/AbstractResourceInfo.java
Tue Aug 20 19:00:10 2013
@@ -185,6 +185,10 @@ public abstract class AbstractResourceIn
for (Class<?> i : interfaces) {
findContextSetterMethods(i);
}
+ Class<?> superCls = cls.getSuperclass();
+ if (superCls != null && superCls != Object.class) {
+ findContextSetterMethods(superCls);
+ }
}
private void checkContextMethod(Method m) {
Modified:
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/Injectable.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/Injectable.java?rev=1515922&r1=1515921&r2=1515922&view=diff
==============================================================================
---
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/Injectable.java
(original)
+++
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/Injectable.java
Tue Aug 20 19:00:10 2013
@@ -19,7 +19,9 @@
package org.apache.cxf.systest.jaxrs.security;
import javax.ws.rs.core.SecurityContext;
+import javax.ws.rs.core.UriInfo;
public interface Injectable {
void setSecurityContext(SecurityContext sc);
+ void setUriInfo(UriInfo ui);
}
Modified:
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRSSpringSecurityInterfaceTest.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRSSpringSecurityInterfaceTest.java?rev=1515922&r1=1515921&r2=1515922&view=diff
==============================================================================
---
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRSSpringSecurityInterfaceTest.java
(original)
+++
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/JAXRSSpringSecurityInterfaceTest.java
Tue Aug 20 19:00:10 2013
@@ -35,7 +35,7 @@ public class JAXRSSpringSecurityInterfac
@BeforeClass
public static void startServers() throws Exception {
assertTrue("server did not launch correctly",
- launchServer(BookServerSecuritySpringInterface.class));
+ launchServer(BookServerSecuritySpringInterface.class,
true));
}
@Test
Modified:
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/SecureBookStore.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/SecureBookStore.java?rev=1515922&r1=1515921&r2=1515922&view=diff
==============================================================================
---
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/SecureBookStore.java
(original)
+++
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/security/SecureBookStore.java
Tue Aug 20 19:00:10 2013
@@ -26,16 +26,16 @@ import javax.annotation.Resource;
import javax.ws.rs.Path;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
-import javax.ws.rs.core.SecurityContext;
+import javax.ws.rs.core.UriInfo;
import org.apache.cxf.systest.jaxrs.Book;
import org.apache.cxf.systest.jaxrs.BookNotFoundFault;
@Path("/bookstorestorage/")
-public class SecureBookStore implements SecureBookInterface, Injectable {
+public class SecureBookStore extends AbstractSecureBookStore implements
SecureBookInterface {
private Map<Long, Book> books = new HashMap<Long, Book>();
private SecureBookInterface subresource;
- private SecurityContext securityContext;
+ private UriInfo uriInfo;
public SecureBookStore() {
Book book = new Book();
@@ -45,8 +45,8 @@ public class SecureBookStore implements
}
@Context
- public void setSecurityContext(SecurityContext sc) {
- securityContext = sc;
+ public void setUriInfo(UriInfo ui) {
+ uriInfo = ui;
}
@Resource
@@ -66,6 +66,9 @@ public class SecureBookStore implements
}
public Book getThatBook() throws BookNotFoundFault {
+ if (!uriInfo.getBaseUri().getScheme().startsWith("http")) {
+ throw new WebApplicationException(500);
+ }
if ((securityContext.isUserInRole("ROLE_ADMIN")
|| securityContext.isUserInRole("ROLE_BOOK_OWNER"))
&& !securityContext.isUserInRole("ROLE_BAZ")) {