THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block |
---|
public class WSBasicAuthenticationReferencePolicyInterceptor implements Interceptor { public static final QName policySetQName = new QName(Constants.SCA10_TUSCANY_NS, "wsBasicAuthentication"); private Invoker next; private Operation operation; private PolicySet policySet = null; private String context; private WSBasicAuthenticationPolicy policy; public WSBasicAuthenticationReferencePolicyInterceptor(String context, Operation operation, PolicySet policySet) { super(); this.operation = operation; this.policySet = policySet; this.context = context; init(); } private void init() { if (policySet != null) { for (Object policyObject : policySet.getPolicies()){ if (policyObject instanceof WSBasicAuthenticationPolicy){ policy = (WSBasicAuthenticationPolicy)policyObject; break; } } } } public Message invoke(Message msg) { // could call out here to some 3rd part system to get credentials msg.getQoSContext().put(WSBasicAuthenticationPolicy.WS_BASIC_AUTHENTICATION_USERNAME, policy.getUserName()); msg.getQoSContext().put(WSBasicAuthenticationPolicy.WS_BASIC_AUTHENTICATION_USERNAMEPASSWORD, policy.getUserNamegetPassword()); return getNext().invoke(msg); } public Invoker getNext() { return next; } public void setNext(Invoker next) { this.next = next; } } |
Service side interceptor
Code Block |
---|
public class WSBasicAuthenticationServicePolicyInterceptor implements Interceptor {
public static final QName policySetQName = new QName(Constants.SCA10_TUSCANY_NS, "wsBasicAuthentication");
private Invoker next;
private Operation operation;
private PolicySet policySet = null;
private String context;
private WSBasicAuthenticationPolicy policy;
public WSBasicAuthenticationServicePolicyInterceptor(String context, Operation operation, PolicySet policySet) {
super();
this.operation = operation;
this.policySet = policySet;
this.context = context;
init();
}
private void init() {
if (policySet != null) {
for (Object policyObject : policySet.getPolicies()){
if (policyObject instanceof WSBasicAuthenticationPolicy){
policy = (WSBasicAuthenticationPolicy)policyObject;
break;
}
}
}
}
public Message invoke(Message msg) {
// could call out here to some 3rd part system to do whatever you
// need to turn credentials into a principal
String username = (String)msg.getQoSContext().get(WSBasicAuthenticationPolicy.WS_BASIC_AUTHENTICATION_USERNAME);
String password = (String)msg.getQoSContext().get(WSBasicAuthenticationPolicy.WS_BASIC_AUTHENTICATION_PASSWORD);
msg.getQoSContext().put(Message.QOS_CTX_SECURITY_PRINCIPAL, username);
return getNext().invoke(msg);
}
public Invoker getNext() {
return next;
}
public void setNext(Invoker next) {
this.next = next;
}
}
|
Confidentiality - WS Security
...