summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x/modules/binding-jms-policy
diff options
context:
space:
mode:
Diffstat (limited to 'branches/sca-java-1.x/modules/binding-jms-policy')
-rw-r--r--branches/sca-java-1.x/modules/binding-jms-policy/pom.xml2
-rw-r--r--branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationReferencePolicyInterceptor.java45
-rw-r--r--branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationReferencePolicyProvider.java11
-rw-r--r--branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationServicePolicyInterceptor.java49
-rw-r--r--branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationServicePolicyProvider.java11
-rw-r--r--branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/header/JMSHeaderReferencePolicyInterceptor.java10
-rw-r--r--branches/sca-java-1.x/modules/binding-jms-policy/src/main/resources/org/apache/tuscany/sca/binding/jms/policy/definitions.xml2
7 files changed, 86 insertions, 44 deletions
diff --git a/branches/sca-java-1.x/modules/binding-jms-policy/pom.xml b/branches/sca-java-1.x/modules/binding-jms-policy/pom.xml
index ba97f217f4..f44f06d262 100644
--- a/branches/sca-java-1.x/modules/binding-jms-policy/pom.xml
+++ b/branches/sca-java-1.x/modules/binding-jms-policy/pom.xml
@@ -56,7 +56,7 @@
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
- <artifactId>tuscany-binding-jms</artifactId>
+ <artifactId>tuscany-binding-jms-runtime</artifactId>
<version>1.4-SNAPSHOT</version>
</dependency>
diff --git a/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationReferencePolicyInterceptor.java b/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationReferencePolicyInterceptor.java
index 17b5da42be..56fffeb817 100644
--- a/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationReferencePolicyInterceptor.java
+++ b/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationReferencePolicyInterceptor.java
@@ -19,8 +19,12 @@
package org.apache.tuscany.sca.binding.jms.policy.authentication.token;
+import javax.jms.JMSException;
import javax.security.auth.Subject;
+import org.apache.tuscany.sca.binding.jms.context.JMSBindingContext;
+import org.apache.tuscany.sca.binding.jms.impl.JMSBindingConstants;
+import org.apache.tuscany.sca.binding.jms.impl.JMSBindingException;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.invocation.Interceptor;
import org.apache.tuscany.sca.invocation.Invoker;
@@ -38,14 +42,12 @@ import org.apache.tuscany.sca.policy.authentication.token.TokenPrincipal;
public class JMSTokenAuthenticationReferencePolicyInterceptor implements Interceptor {
private Invoker next;
- private Operation operation;
private PolicySet policySet = null;
private String context;
private JMSTokenAuthenticationPolicy policy;
- public JMSTokenAuthenticationReferencePolicyInterceptor(String context, Operation operation, PolicySet policySet) {
+ public JMSTokenAuthenticationReferencePolicyInterceptor(String context, PolicySet policySet) {
super();
- this.operation = operation;
this.policySet = policySet;
this.context = context;
init();
@@ -63,20 +65,29 @@ public class JMSTokenAuthenticationReferencePolicyInterceptor implements Interce
}
public Message invoke(Message msg) {
- // could call out here to some 3rd party system to get credentials
-
- if ( policy.getTokenName() != null){
-
- Subject subject = SecurityUtil.getSubject(msg);
- TokenPrincipal principal = SecurityUtil.getPrincipal(subject, TokenPrincipal.class);
-
- if (principal == null){
- principal = new TokenPrincipal("SomeJMSAuthorizationToken");
- subject.getPrincipals().add(principal);
- }
- }
-
- return getNext().invoke(msg);
+ try {
+ javax.jms.Message jmsMsg = msg.getBody();
+
+ if ( policy.getTokenName() != null){
+
+ Subject subject = SecurityUtil.getSubject(msg);
+ TokenPrincipal principal = SecurityUtil.getPrincipal(subject, TokenPrincipal.class);
+
+ if (principal == null){
+ // should call out here to some 3rd party system to get credentials
+ // and correct token. Here we are just putting in the token name
+ principal = new TokenPrincipal("DummyTokenID");
+ subject.getPrincipals().add(principal);
+ }
+
+ jmsMsg.setStringProperty(policy.getTokenName().toString(), principal.getName());
+ }
+
+ return getNext().invoke(msg);
+
+ } catch (JMSException e) {
+ throw new JMSBindingException(e);
+ }
}
public Invoker getNext() {
diff --git a/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationReferencePolicyProvider.java b/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationReferencePolicyProvider.java
index 610bf758d1..a982e69ffd 100644
--- a/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationReferencePolicyProvider.java
+++ b/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationReferencePolicyProvider.java
@@ -29,13 +29,14 @@ import org.apache.tuscany.sca.policy.PolicySet;
import org.apache.tuscany.sca.policy.PolicySetAttachPoint;
import org.apache.tuscany.sca.policy.util.PolicyHandler;
import org.apache.tuscany.sca.provider.PolicyProvider;
+import org.apache.tuscany.sca.provider.PolicyProviderRRB;
import org.apache.tuscany.sca.runtime.RuntimeComponent;
import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
/**
* @version $Rev$ $Date$
*/
-public class JMSTokenAuthenticationReferencePolicyProvider implements PolicyProvider {
+public class JMSTokenAuthenticationReferencePolicyProvider implements PolicyProviderRRB {
private RuntimeComponent component;
private RuntimeComponentReference reference;
private Binding binding;
@@ -76,9 +77,13 @@ public class JMSTokenAuthenticationReferencePolicyProvider implements PolicyProv
* @see org.apache.tuscany.sca.provider.PolicyProvider#createInterceptor(org.apache.tuscany.sca.interfacedef.Operation)
*/
public Interceptor createInterceptor(Operation operation) {
- PolicySet ps = findPolicySet();
- return ps == null ? null : new JMSTokenAuthenticationReferencePolicyInterceptor(getContext(), operation, ps);
+ return null;
}
+
+ public Interceptor createBindingInterceptor() {
+ PolicySet ps = findPolicySet();
+ return ps == null ? null : new JMSTokenAuthenticationReferencePolicyInterceptor(getContext(), ps);
+ }
/**
* @see org.apache.tuscany.sca.provider.PolicyProvider#getPhase()
diff --git a/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationServicePolicyInterceptor.java b/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationServicePolicyInterceptor.java
index ec3be6e165..c8d28ad5db 100644
--- a/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationServicePolicyInterceptor.java
+++ b/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationServicePolicyInterceptor.java
@@ -19,13 +19,13 @@
package org.apache.tuscany.sca.binding.jms.policy.authentication.token;
-import java.security.Principal;
+import javax.jms.JMSException;
import javax.security.auth.Subject;
-import javax.xml.namespace.QName;
-import org.apache.tuscany.sca.assembly.xml.Constants;
-import org.apache.tuscany.sca.interfacedef.Operation;
+import org.apache.tuscany.sca.binding.jms.context.JMSBindingContext;
+import org.apache.tuscany.sca.binding.jms.impl.JMSBindingConstants;
+import org.apache.tuscany.sca.binding.jms.impl.JMSBindingException;
import org.apache.tuscany.sca.invocation.Interceptor;
import org.apache.tuscany.sca.invocation.Invoker;
import org.apache.tuscany.sca.invocation.Message;
@@ -34,21 +34,19 @@ import org.apache.tuscany.sca.policy.SecurityUtil;
import org.apache.tuscany.sca.policy.authentication.token.TokenPrincipal;
/**
- * Policy handler to handle PolicySet related to Logging with the QName
+ * Policy handler to handle token based authentication
* {http://tuscany.apache.org/xmlns/sca/1.0/impl/java}LoggingPolicy
*
* @version $Rev$ $Date$
*/
public class JMSTokenAuthenticationServicePolicyInterceptor implements Interceptor {
private Invoker next;
- private Operation operation;
private PolicySet policySet = null;
private String context;
private JMSTokenAuthenticationPolicy policy;
- public JMSTokenAuthenticationServicePolicyInterceptor(String context, Operation operation, PolicySet policySet) {
+ public JMSTokenAuthenticationServicePolicyInterceptor(String context, PolicySet policySet) {
super();
- this.operation = operation;
this.policySet = policySet;
this.context = context;
init();
@@ -66,17 +64,30 @@ public class JMSTokenAuthenticationServicePolicyInterceptor implements Intercept
}
public Message invoke(Message msg) {
- Subject subject = SecurityUtil.getSubject(msg);
- TokenPrincipal principal = SecurityUtil.getPrincipal(subject, TokenPrincipal.class);
-
- if (principal != null) {
- System.out.println("Token: " + principal.getName());
-
- // call out here to some 3rd party system to do whatever you
- // need to authenticate the principal
- }
-
- return getNext().invoke(msg);
+ try{
+ // get the jms context
+ JMSBindingContext context = msg.getBindingContext();
+ javax.jms.Message jmsMsg = context.getJmsMsg();
+
+ String token = jmsMsg.getStringProperty(policy.getTokenName().toString());
+
+ Subject subject = SecurityUtil.getSubject(msg);
+ TokenPrincipal principal = SecurityUtil.getPrincipal(subject, TokenPrincipal.class);
+
+ if (principal == null){
+ principal = new TokenPrincipal(token);
+ subject.getPrincipals().add(principal);
+ }
+
+ System.out.println("JMS service received token: " + principal.getName());
+
+ // call out here to some 3rd party system to do whatever you
+ // need to authenticate the principal
+
+ return getNext().invoke(msg);
+ } catch (JMSException e) {
+ throw new JMSBindingException(e);
+ }
}
public Invoker getNext() {
diff --git a/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationServicePolicyProvider.java b/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationServicePolicyProvider.java
index 4278c1e595..209bd4becf 100644
--- a/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationServicePolicyProvider.java
+++ b/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/authentication/token/JMSTokenAuthenticationServicePolicyProvider.java
@@ -29,13 +29,14 @@ import org.apache.tuscany.sca.policy.PolicySet;
import org.apache.tuscany.sca.policy.PolicySetAttachPoint;
import org.apache.tuscany.sca.policy.util.PolicyHandler;
import org.apache.tuscany.sca.provider.PolicyProvider;
+import org.apache.tuscany.sca.provider.PolicyProviderRRB;
import org.apache.tuscany.sca.runtime.RuntimeComponent;
import org.apache.tuscany.sca.runtime.RuntimeComponentService;
/**
* @version $Rev$ $Date$
*/
-public class JMSTokenAuthenticationServicePolicyProvider implements PolicyProvider {
+public class JMSTokenAuthenticationServicePolicyProvider implements PolicyProviderRRB {
private RuntimeComponent component;
private RuntimeComponentService service;
private Binding binding;
@@ -74,9 +75,13 @@ public class JMSTokenAuthenticationServicePolicyProvider implements PolicyProvid
* @see org.apache.tuscany.sca.provider.PolicyProvider#createInterceptor(org.apache.tuscany.sca.interfacedef.Operation)
*/
public Interceptor createInterceptor(Operation operation) {
- PolicySet ps = findPolicySet();
- return ps == null ? null : new JMSTokenAuthenticationServicePolicyInterceptor(getContext(), operation, ps);
+ return null;
}
+
+ public Interceptor createBindingInterceptor() {
+ PolicySet ps = findPolicySet();
+ return ps == null ? null : new JMSTokenAuthenticationServicePolicyInterceptor(getContext(), ps);
+ }
/**
* @see org.apache.tuscany.sca.provider.PolicyProvider#getPhase()
diff --git a/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/header/JMSHeaderReferencePolicyInterceptor.java b/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/header/JMSHeaderReferencePolicyInterceptor.java
index 19069378ef..58100cfb8d 100644
--- a/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/header/JMSHeaderReferencePolicyInterceptor.java
+++ b/branches/sca-java-1.x/modules/binding-jms-policy/src/main/java/org/apache/tuscany/sca/binding/jms/policy/header/JMSHeaderReferencePolicyInterceptor.java
@@ -26,7 +26,9 @@ import javax.jms.JMSException;
import javax.security.auth.Subject;
import org.apache.tuscany.sca.assembly.Binding;
+import org.apache.tuscany.sca.binding.jms.context.JMSBindingContext;
import org.apache.tuscany.sca.binding.jms.impl.JMSBinding;
+import org.apache.tuscany.sca.binding.jms.impl.JMSBindingConstants;
import org.apache.tuscany.sca.binding.jms.impl.JMSBindingException;
import org.apache.tuscany.sca.binding.jms.policy.JMSBindingDefinitionsProvider;
import org.apache.tuscany.sca.interfacedef.Operation;
@@ -80,6 +82,9 @@ public class JMSHeaderReferencePolicyInterceptor implements Interceptor {
public Message invoke(Message msg) {
try {
+ // get the jms context
+ JMSBindingContext context = msg.getBindingContext();
+
javax.jms.Message jmsMsg = msg.getBody();
String operationName = msg.getOperation().getName();
@@ -113,6 +118,11 @@ public class JMSHeaderReferencePolicyInterceptor implements Interceptor {
jmsMsg.setObjectProperty(propName, jmsHeaderPolicy.getProperties().get(propName));
}
}
+
+ if (jmsHeaderPolicy != null &&
+ jmsHeaderPolicy.getTimeToLive() != null) {
+ context.setTimeToLive(jmsHeaderPolicy.getTimeToLive());
+ }
return getNext().invoke(msg);
} catch (JMSException e) {
diff --git a/branches/sca-java-1.x/modules/binding-jms-policy/src/main/resources/org/apache/tuscany/sca/binding/jms/policy/definitions.xml b/branches/sca-java-1.x/modules/binding-jms-policy/src/main/resources/org/apache/tuscany/sca/binding/jms/policy/definitions.xml
index 66ec011844..c87079dd54 100644
--- a/branches/sca-java-1.x/modules/binding-jms-policy/src/main/resources/org/apache/tuscany/sca/binding/jms/policy/definitions.xml
+++ b/branches/sca-java-1.x/modules/binding-jms-policy/src/main/resources/org/apache/tuscany/sca/binding/jms/policy/definitions.xml
@@ -72,7 +72,7 @@
<intent name="priority.medium">
<description>
- Messages are meduim priority
+ Messages are medium priority
</description>
</intent>