4 changed files with 119 additions and 1 deletions
@ -0,0 +1,58 @@
@@ -0,0 +1,58 @@
|
||||
/* Copyright 2004 Acegi Technology Pty Limited |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package net.sf.acegisecurity.remoting; |
||||
|
||||
import net.sf.acegisecurity.context.Context; |
||||
import net.sf.acegisecurity.context.ContextHolder; |
||||
|
||||
import org.aopalliance.intercept.MethodInvocation; |
||||
|
||||
import org.springframework.remoting.support.RemoteInvocation; |
||||
|
||||
import java.lang.reflect.InvocationTargetException; |
||||
|
||||
|
||||
/** |
||||
* DOCUMENT ME! |
||||
* |
||||
* @author James Monaghan |
||||
* @version $Id$ |
||||
*/ |
||||
public class AcegiRemoteInvocation extends RemoteInvocation { |
||||
//~ Instance fields ========================================================
|
||||
|
||||
private Context context; |
||||
|
||||
//~ Constructors ===========================================================
|
||||
|
||||
public AcegiRemoteInvocation(MethodInvocation methodInvocation) { |
||||
super(methodInvocation); |
||||
context = ContextHolder.getContext(); |
||||
} |
||||
|
||||
//~ Methods ================================================================
|
||||
|
||||
public Object invoke(Object targetObject) |
||||
throws NoSuchMethodException, IllegalAccessException, |
||||
InvocationTargetException { |
||||
ContextHolder.setContext(context); |
||||
|
||||
Object result = super.invoke(targetObject); |
||||
ContextHolder.setContext(null); |
||||
|
||||
return result; |
||||
} |
||||
} |
||||
@ -0,0 +1,37 @@
@@ -0,0 +1,37 @@
|
||||
/* Copyright 2004 Acegi Technology Pty Limited |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package net.sf.acegisecurity.remoting; |
||||
|
||||
import org.aopalliance.intercept.MethodInvocation; |
||||
|
||||
import org.springframework.remoting.support.RemoteInvocation; |
||||
import org.springframework.remoting.support.RemoteInvocationFactory; |
||||
|
||||
|
||||
/** |
||||
* DOCUMENT ME! |
||||
* |
||||
* @author James Monaghan |
||||
* @version $Id$ |
||||
*/ |
||||
public class AcegiRemoteInvocationFactory implements RemoteInvocationFactory { |
||||
//~ Methods ================================================================
|
||||
|
||||
public RemoteInvocation createRemoteInvocation( |
||||
MethodInvocation methodInvocation) { |
||||
return new AcegiRemoteInvocation(methodInvocation); |
||||
} |
||||
} |
||||
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
<html> |
||||
<body> |
||||
Enables use of Spring's remoting extension points to propogate |
||||
security identity from one JVM to the remote JVM. |
||||
|
||||
<P>The beans are wired as follows: |
||||
|
||||
<P> |
||||
<code> |
||||
<bean id="test" class="org.springframework.remoting.rmi.RmiProxyFactoryBean"><BR> |
||||
<property name="serviceUrl"><value>rmi://localhost/Test</value></property><BR> |
||||
<property name="serviceInterface"><value>test.TargetInterface</value></property><BR> |
||||
<property name="refreshStubOnConnectFailure"><value>true</value></property><BR> |
||||
<property name="remoteInvocationFactory"><ref bean="remoteInvocationFactory"/></property><BR> |
||||
</bean><BR> |
||||
<BR> |
||||
<bean id="remoteInvocationFactory" class="net.sf.acegisecurity.remoting.AcegiRemoteInvocationFactory"/><BR> |
||||
</code> |
||||
|
||||
</body> |
||||
</html> |
||||
Loading…
Reference in new issue