1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.ws.soap.security.xwss.callback;
18
19 import java.io.IOException;
20 import java.security.cert.X509Certificate;
21 import javax.security.auth.callback.Callback;
22 import javax.security.auth.callback.UnsupportedCallbackException;
23
24 import com.sun.xml.wss.impl.callback.CertificateValidationCallback;
25 import com.sun.xml.wss.impl.callback.PasswordValidationCallback;
26
27 import org.springframework.ws.soap.security.callback.AbstractCallbackHandler;
28
29
30
31
32
33
34
35
36
37
38
39
40
41 public class MockValidationCallbackHandler extends AbstractCallbackHandler {
42
43 private boolean isValid = true;
44
45 public MockValidationCallbackHandler() {
46 }
47
48 public MockValidationCallbackHandler(boolean valid) {
49 isValid = valid;
50 }
51
52 protected void handleInternal(Callback callback) throws IOException, UnsupportedCallbackException {
53 if (callback instanceof CertificateValidationCallback) {
54 CertificateValidationCallback validationCallback = (CertificateValidationCallback) callback;
55 validationCallback.setValidator(new MockCertificateValidator());
56 }
57 else if (callback instanceof PasswordValidationCallback) {
58 PasswordValidationCallback validationCallback = (PasswordValidationCallback) callback;
59 validationCallback.setValidator(new MockPasswordValidator());
60 }
61 else {
62 throw new UnsupportedCallbackException(callback);
63 }
64 }
65
66 public void setValid(boolean valid) {
67 isValid = valid;
68 }
69
70 private class MockCertificateValidator implements CertificateValidationCallback.CertificateValidator {
71
72 public boolean validate(X509Certificate certificate)
73 throws CertificateValidationCallback.CertificateValidationException {
74 return isValid;
75 }
76 }
77
78 private class MockPasswordValidator implements PasswordValidationCallback.PasswordValidator {
79
80 public boolean validate(PasswordValidationCallback.Request request)
81 throws PasswordValidationCallback.PasswordValidationException {
82 return isValid;
83 }
84 }
85 }