Package org.springframework.ws.soap.security.xwss.callback

Source Code of org.springframework.ws.soap.security.xwss.callback.CryptographyCallbackHandler

/*
* Copyright 2005-2010 the original author or authors.
*
* 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 org.springframework.ws.soap.security.xwss.callback;

import java.io.IOException;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.UnsupportedCallbackException;

import com.sun.xml.wss.impl.callback.CertificateValidationCallback;
import com.sun.xml.wss.impl.callback.DecryptionKeyCallback;
import com.sun.xml.wss.impl.callback.EncryptionKeyCallback;
import com.sun.xml.wss.impl.callback.SignatureKeyCallback;
import com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback;

import org.springframework.ws.soap.security.callback.AbstractCallbackHandler;

/**
* Default callback handler that handles cryptographic callback. This handler determines the exact callback passed, and
* calls a template method for it. By default, all template methods throw an {@code UnsupportedCallbackException},
* so you only need to override those you need.
*
* @author Arjen Poutsma
* @since 1.0.0
*/
public class CryptographyCallbackHandler extends AbstractCallbackHandler {

    @Override
    protected final void handleInternal(Callback callback) throws IOException, UnsupportedCallbackException {
        if (callback instanceof CertificateValidationCallback) {
            handleCertificateValidationCallback((CertificateValidationCallback) callback);
        }
        else if (callback instanceof DecryptionKeyCallback) {
            handleDecryptionKeyCallback((DecryptionKeyCallback) callback);
        }
        else if (callback instanceof EncryptionKeyCallback) {
            handleEncryptionKeyCallback((EncryptionKeyCallback) callback);
        }
        else if (callback instanceof SignatureKeyCallback) {
            handleSignatureKeyCallback((SignatureKeyCallback) callback);
        }
        else if (callback instanceof SignatureVerificationKeyCallback) {
            handleSignatureVerificationKeyCallback((SignatureVerificationKeyCallback) callback);
        }
        else {
            throw new UnsupportedCallbackException(callback);
        }

    }

    //
    // Certificate validation
    //

    /**
     * Template method that handles {@code CertificateValidationCallback}s. Called from
     * {@code handleInternal()}. Default implementation throws an {@code UnsupportedCallbackException}.
     */
    protected void handleCertificateValidationCallback(CertificateValidationCallback callback)
            throws IOException, UnsupportedCallbackException {
        throw new UnsupportedCallbackException(callback);
    }

    //
    // Decryption
    //

    /**
     * Method that handles {@code DecryptionKeyCallback}s. Called from {@code handleInternal()}. Default
     * implementation delegates to specific handling methods.
     *
     * @see #handlePrivateKeyRequest(com.sun.xml.wss.impl.callback.DecryptionKeyCallback,
     *      com.sun.xml.wss.impl.callback.DecryptionKeyCallback.PrivateKeyRequest)
     * @see #handleSymmetricKeyRequest(com.sun.xml.wss.impl.callback.DecryptionKeyCallback,
     *      com.sun.xml.wss.impl.callback.DecryptionKeyCallback.SymmetricKeyRequest)
     */
    protected final void handleDecryptionKeyCallback(DecryptionKeyCallback callback)
            throws IOException, UnsupportedCallbackException {
        if (callback.getRequest() instanceof DecryptionKeyCallback.PrivateKeyRequest) {
            handlePrivateKeyRequest(callback, (DecryptionKeyCallback.PrivateKeyRequest) callback.getRequest());
        }
        else if (callback.getRequest() instanceof DecryptionKeyCallback.SymmetricKeyRequest) {
            handleSymmetricKeyRequest(callback, (DecryptionKeyCallback.SymmetricKeyRequest) callback.getRequest());
        }
        else {
            throw new UnsupportedCallbackException(callback);
        }
    }

    /**
     * Method that handles {@code DecryptionKeyCallback}s with {@code PrivateKeyRequest} . Called from
     * {@code handleDecryptionKeyCallback()}. Default implementation delegates to specific handling methods.
     *
     * @see #handlePublicKeyBasedPrivKeyCertRequest(com.sun.xml.wss.impl.callback.SignatureKeyCallback,
     *      com.sun.xml.wss.impl.callback.SignatureKeyCallback.PublicKeyBasedPrivKeyCertRequest)
     * @see #handleX509CertificateBasedRequest(com.sun.xml.wss.impl.callback.DecryptionKeyCallback,
     *      com.sun.xml.wss.impl.callback.DecryptionKeyCallback.X509CertificateBasedRequest)
     * @see #handleX509IssuerSerialBasedRequest(com.sun.xml.wss.impl.callback.DecryptionKeyCallback,
     *      com.sun.xml.wss.impl.callback.DecryptionKeyCallback.X509IssuerSerialBasedRequest)
     * @see #handleX509SubjectKeyIdentifierBasedRequest(com.sun.xml.wss.impl.callback.DecryptionKeyCallback,
     *      com.sun.xml.wss.impl.callback.DecryptionKeyCallback.X509SubjectKeyIdentifierBasedRequest)
     */
    protected final void handlePrivateKeyRequest(DecryptionKeyCallback callback,
                                                 DecryptionKeyCallback.PrivateKeyRequest request)
            throws IOException, UnsupportedCallbackException {
        if (request instanceof DecryptionKeyCallback.PublicKeyBasedPrivKeyRequest) {
            handlePublicKeyBasedPrivKeyRequest(callback, (DecryptionKeyCallback.PublicKeyBasedPrivKeyRequest) request);
        }
        else if (request instanceof DecryptionKeyCallback.X509CertificateBasedRequest) {
            handleX509CertificateBasedRequest(callback, (DecryptionKeyCallback.X509CertificateBasedRequest) request);
        }
        else if (request instanceof DecryptionKeyCallback.X509IssuerSerialBasedRequest) {
            handleX509IssuerSerialBasedRequest(callback, (DecryptionKeyCallback.X509IssuerSerialBasedRequest) request);
        }
        else if (request instanceof DecryptionKeyCallback.X509SubjectKeyIdentifierBasedRequest) {
            handleX509SubjectKeyIdentifierBasedRequest(callback,
                    (DecryptionKeyCallback.X509SubjectKeyIdentifierBasedRequest) request);
        }
        else {
            throw new UnsupportedCallbackException(callback);
        }
    }

    /**
     * Template method that handles {@code DecryptionKeyCallback}s with {@code PublicKeyBasedPrivKeyRequest}s.
     * Called from {@code handlePrivateKeyRequest()}. Default implementation throws an
     * {@code UnsupportedCallbackException}.
     */
    protected void handlePublicKeyBasedPrivKeyRequest(DecryptionKeyCallback callback,
                                                      DecryptionKeyCallback.PublicKeyBasedPrivKeyRequest request)
            throws IOException, UnsupportedCallbackException {
        throw new UnsupportedCallbackException(callback);
    }

    /**
     * Template method that handles {@code DecryptionKeyCallback}s with {@code X509CertificateBasedRequest}s.
     * Called from {@code handlePrivateKeyRequest()}. Default implementation throws an
     * {@code UnsupportedCallbackException}.
     */
    protected void handleX509CertificateBasedRequest(DecryptionKeyCallback callback,
                                                     DecryptionKeyCallback.X509CertificateBasedRequest request)
            throws IOException, UnsupportedCallbackException {
        throw new UnsupportedCallbackException(callback);
    }

    /**
     * Template method that handles {@code DecryptionKeyCallback}s with {@code X509IssuerSerialBasedRequest}s.
     * Called from {@code handlePrivateKeyRequest()}. Default implementation throws an
     * {@code UnsupportedCallbackException}.
     */
    protected void handleX509IssuerSerialBasedRequest(DecryptionKeyCallback callback,
                                                      DecryptionKeyCallback.X509IssuerSerialBasedRequest request)
            throws IOException, UnsupportedCallbackException {
        throw new UnsupportedCallbackException(callback);
    }

    /**
     * Template method that handles {@code DecryptionKeyCallback}s with {@code X509SubjectKeyIdentifierBasedRequest}s.
     * Called from {@code handlePrivateKeyRequest()}. Default implementation throws an
     * {@code UnsupportedCallbackException}.
     */
    protected void handleX509SubjectKeyIdentifierBasedRequest(DecryptionKeyCallback callback,
                                                              DecryptionKeyCallback.X509SubjectKeyIdentifierBasedRequest request)
            throws IOException, UnsupportedCallbackException {
        throw new UnsupportedCallbackException(callback);
    }

    /**
     * Method that handles {@code DecryptionKeyCallback}s with {@code SymmetricKeyRequest} . Called from
     * {@code handleDecryptionKeyCallback()}. Default implementation delegates to specific handling methods.
     *
     * @see #handleAliasSymmetricKeyRequest(com.sun.xml.wss.impl.callback.DecryptionKeyCallback,
     *      com.sun.xml.wss.impl.callback.DecryptionKeyCallback.AliasSymmetricKeyRequest)
     */
    protected final void handleSymmetricKeyRequest(DecryptionKeyCallback callback,
                                                   DecryptionKeyCallback.SymmetricKeyRequest request)
            throws IOException, UnsupportedCallbackException {
        if (request instanceof DecryptionKeyCallback.AliasSymmetricKeyRequest) {
            DecryptionKeyCallback.AliasSymmetricKeyRequest aliasSymmetricKeyRequest =
                    (DecryptionKeyCallback.AliasSymmetricKeyRequest) request;
            handleAliasSymmetricKeyRequest(callback, aliasSymmetricKeyRequest);
        }
        else {
            throw new UnsupportedCallbackException(callback);
        }
    }

    /**
     * Template method that handles {@code DecryptionKeyCallback}s with {@code AliasSymmetricKeyRequest}s.
     * Called from {@code handleSymmetricKeyRequest()}. Default implementation throws an
     * {@code UnsupportedCallbackException}.
     */
    protected void handleAliasSymmetricKeyRequest(DecryptionKeyCallback callback,
                                                  DecryptionKeyCallback.AliasSymmetricKeyRequest request)
            throws IOException, UnsupportedCallbackException {
        throw new UnsupportedCallbackException(callback);
    }

    //
    // Encryption
    //

    /**
     * Method that handles {@code EncryptionKeyCallback}s. Called from {@code handleInternal()}. Default
     * implementation delegates to specific handling methods.
     *
     * @see #handleSymmetricKeyRequest(com.sun.xml.wss.impl.callback.EncryptionKeyCallback,
     *      com.sun.xml.wss.impl.callback.EncryptionKeyCallback.SymmetricKeyRequest)
     * @see #handleX509CertificateRequest(com.sun.xml.wss.impl.callback.EncryptionKeyCallback,
     *      com.sun.xml.wss.impl.callback.EncryptionKeyCallback.X509CertificateRequest)
     */
    protected final void handleEncryptionKeyCallback(EncryptionKeyCallback callback)
            throws IOException, UnsupportedCallbackException {
        if (callback.getRequest() instanceof EncryptionKeyCallback.SymmetricKeyRequest) {
            handleSymmetricKeyRequest(callback, (EncryptionKeyCallback.SymmetricKeyRequest) callback.getRequest());
        }
        else if (callback.getRequest() instanceof EncryptionKeyCallback.X509CertificateRequest) {
            handleX509CertificateRequest(callback,
                    (EncryptionKeyCallback.X509CertificateRequest) callback.getRequest());
        }
        else {
            throw new UnsupportedCallbackException(callback);

        }
    }

    /**
     * Method that handles {@code EncryptionKeyCallback}s with {@code SymmetricKeyRequest} . Called from
     * {@code handleEncryptionKeyCallback()}. Default implementation delegates to specific handling methods.
     *
     * @see #handleAliasSymmetricKeyRequest(com.sun.xml.wss.impl.callback.EncryptionKeyCallback,
     *      com.sun.xml.wss.impl.callback.EncryptionKeyCallback.AliasSymmetricKeyRequest)
     */
    protected final void handleSymmetricKeyRequest(EncryptionKeyCallback callback,
                                                   EncryptionKeyCallback.SymmetricKeyRequest request)
            throws IOException, UnsupportedCallbackException {
        if (request instanceof EncryptionKeyCallback.AliasSymmetricKeyRequest) {
            handleAliasSymmetricKeyRequest(callback, (EncryptionKeyCallback.AliasSymmetricKeyRequest) request);
        }
    }

    /**
     * Template method that handles {@code EncryptionKeyCallback}s with {@code AliasSymmetricKeyRequest}s.
     * Called from {@code handleSymmetricKeyRequest()}. Default implementation throws an
     * {@code UnsupportedCallbackException}.
     */
    protected void handleAliasSymmetricKeyRequest(EncryptionKeyCallback callback,
                                                  EncryptionKeyCallback.AliasSymmetricKeyRequest request)
            throws IOException, UnsupportedCallbackException {
        throw new UnsupportedCallbackException(callback);
    }

    /**
     * Method that handles {@code EncryptionKeyCallback}s with {@code X509CertificateRequest} . Called from
     * {@code handleEncryptionKeyCallback()}. Default implementation delegates to specific handling methods.
     *
     * @see #handleAliasX509CertificateRequest(com.sun.xml.wss.impl.callback.EncryptionKeyCallback,
     *      com.sun.xml.wss.impl.callback.EncryptionKeyCallback.AliasX509CertificateRequest)
     * @see #handleDefaultX509CertificateRequest(com.sun.xml.wss.impl.callback.EncryptionKeyCallback,
     *      com.sun.xml.wss.impl.callback.EncryptionKeyCallback.DefaultX509CertificateRequest)
     * @see #handlePublicKeyBasedRequest(com.sun.xml.wss.impl.callback.EncryptionKeyCallback,
     *      com.sun.xml.wss.impl.callback.EncryptionKeyCallback.PublicKeyBasedRequest)
     */
    protected final void handleX509CertificateRequest(EncryptionKeyCallback callback,
                                                      EncryptionKeyCallback.X509CertificateRequest request)
            throws IOException, UnsupportedCallbackException {
        if (request instanceof EncryptionKeyCallback.AliasX509CertificateRequest) {
            handleAliasX509CertificateRequest(callback, (EncryptionKeyCallback.AliasX509CertificateRequest) request);
        }
        else if (request instanceof EncryptionKeyCallback.DefaultX509CertificateRequest) {
            handleDefaultX509CertificateRequest(callback,
                    (EncryptionKeyCallback.DefaultX509CertificateRequest) request);
        }
        else if (request instanceof EncryptionKeyCallback.PublicKeyBasedRequest) {
            handlePublicKeyBasedRequest(callback, (EncryptionKeyCallback.PublicKeyBasedRequest) request);
        }
        else {
            throw new UnsupportedCallbackException(callback);
        }
    }

    /**
     * Template method that handles {@code EncryptionKeyCallback}s with {@code AliasX509CertificateRequest}s.
     * Called from {@code handleX509CertificateRequest()}. Default implementation throws an
     * {@code UnsupportedCallbackException}.
     */
    protected void handleAliasX509CertificateRequest(EncryptionKeyCallback callback,
                                                     EncryptionKeyCallback.AliasX509CertificateRequest request)
            throws IOException, UnsupportedCallbackException {
        throw new UnsupportedCallbackException(callback);
    }

    /**
     * Template method that handles {@code EncryptionKeyCallback}s with {@code DefaultX509CertificateRequest}s.
     * Called from {@code handleX509CertificateRequest()}. Default implementation throws an
     * {@code UnsupportedCallbackException}.
     */
    protected void handleDefaultX509CertificateRequest(EncryptionKeyCallback callback,
                                                       EncryptionKeyCallback.DefaultX509CertificateRequest request)
            throws IOException, UnsupportedCallbackException {
        throw new UnsupportedCallbackException(callback);
    }

    /**
     * Template method that handles {@code EncryptionKeyCallback}s with {@code PublicKeyBasedRequest}s. Called
     * from {@code handleX509CertificateRequest()}. Default implementation throws an
     * {@code UnsupportedCallbackException}.
     */
    protected void handlePublicKeyBasedRequest(EncryptionKeyCallback callback,
                                               EncryptionKeyCallback.PublicKeyBasedRequest request)
            throws IOException, UnsupportedCallbackException {
        throw new UnsupportedCallbackException(callback);
    }

    //
    // Signing
    //

    /**
     * Method that handles {@code SignatureKeyCallback}s. Called from {@code handleInternal()}. Default
     * implementation delegates to specific handling methods.
     *
     * @see #handlePrivKeyCertRequest(com.sun.xml.wss.impl.callback.SignatureKeyCallback,
     *      com.sun.xml.wss.impl.callback.SignatureKeyCallback.PrivKeyCertRequest)
     */
    protected final void handleSignatureKeyCallback(SignatureKeyCallback callback)
            throws IOException, UnsupportedCallbackException {
        if (callback.getRequest() instanceof SignatureKeyCallback.PrivKeyCertRequest) {
            handlePrivKeyCertRequest(callback, (SignatureKeyCallback.PrivKeyCertRequest) callback.getRequest());
        }
        else {
            throw new UnsupportedCallbackException(callback);
        }
    }

    /**
     * Method that handles {@code SignatureKeyCallback}s with {@code PrivKeyCertRequest}s. Called from
     * {@code handleSignatureKeyCallback()}. Default implementation delegates to specific handling methods.
     *
     * @see #handleDefaultPrivKeyCertRequest(com.sun.xml.wss.impl.callback.SignatureKeyCallback,
     *      com.sun.xml.wss.impl.callback.SignatureKeyCallback.DefaultPrivKeyCertRequest)
     * @see #handleAliasPrivKeyCertRequest(com.sun.xml.wss.impl.callback.SignatureKeyCallback,
     *      com.sun.xml.wss.impl.callback.SignatureKeyCallback.AliasPrivKeyCertRequest)
     * @see #handlePublicKeyBasedPrivKeyCertRequest(com.sun.xml.wss.impl.callback.SignatureKeyCallback,
     *      com.sun.xml.wss.impl.callback.SignatureKeyCallback.PublicKeyBasedPrivKeyCertRequest)
     */
    protected final void handlePrivKeyCertRequest(SignatureKeyCallback cb,
                                                  SignatureKeyCallback.PrivKeyCertRequest request)
            throws IOException, UnsupportedCallbackException {
        if (request instanceof SignatureKeyCallback.DefaultPrivKeyCertRequest) {
            handleDefaultPrivKeyCertRequest(cb, (SignatureKeyCallback.DefaultPrivKeyCertRequest) request);
        }
        else if (cb.getRequest() instanceof SignatureKeyCallback.AliasPrivKeyCertRequest) {
            handleAliasPrivKeyCertRequest(cb, (SignatureKeyCallback.AliasPrivKeyCertRequest) request);
        }
        else if (cb.getRequest() instanceof SignatureKeyCallback.PublicKeyBasedPrivKeyCertRequest) {
            handlePublicKeyBasedPrivKeyCertRequest(cb, (SignatureKeyCallback.PublicKeyBasedPrivKeyCertRequest) request);
        }
        else {
            throw new UnsupportedCallbackException(cb);
        }
    }

    /**
     * Template method that handles {@code SignatureKeyCallback}s with {@code DefaultPrivKeyCertRequest}s.
     * Called from {@code handlePrivKeyCertRequest()}. Default implementation throws an
     * {@code UnsupportedCallbackException}.
     */
    protected void handleDefaultPrivKeyCertRequest(SignatureKeyCallback callback,
                                                   SignatureKeyCallback.DefaultPrivKeyCertRequest request)
            throws IOException, UnsupportedCallbackException {
        throw new UnsupportedCallbackException(callback);
    }

    /**
     * Template method that handles {@code SignatureKeyCallback}s with {@code AliasPrivKeyCertRequest}s.
     * Called from {@code handlePrivKeyCertRequest()}. Default implementation throws an
     * {@code UnsupportedCallbackException}.
     */
    protected void handleAliasPrivKeyCertRequest(SignatureKeyCallback callback,
                                                 SignatureKeyCallback.AliasPrivKeyCertRequest request)
            throws IOException, UnsupportedCallbackException {
        throw new UnsupportedCallbackException(callback);
    }

    /**
     * Template method that handles {@code SignatureKeyCallback}s with {@code PublicKeyBasedPrivKeyCertRequest}s.
     * Called from {@code handlePrivKeyCertRequest()}. Default implementation throws an
     * {@code UnsupportedCallbackException}.
     */
    protected void handlePublicKeyBasedPrivKeyCertRequest(SignatureKeyCallback callback,
                                                          SignatureKeyCallback.PublicKeyBasedPrivKeyCertRequest request)
            throws IOException, UnsupportedCallbackException {
        throw new UnsupportedCallbackException(callback);
    }

    //
    // Signature verification
    //

    /**
     * Method that handles {@code SignatureVerificationKeyCallback}s. Called from {@code handleInternal()}.
     * Default implementation delegates to specific handling methods.
     *
     * @see #handleX509CertificateRequest(com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback,
     *      com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback.X509CertificateRequest)
     */
    protected final void handleSignatureVerificationKeyCallback(SignatureVerificationKeyCallback callback)
            throws UnsupportedCallbackException, IOException {
        if (callback.getRequest() instanceof SignatureVerificationKeyCallback.X509CertificateRequest) {
            handleX509CertificateRequest(callback,
                    (SignatureVerificationKeyCallback.X509CertificateRequest) callback.getRequest());
        }
        else {
            throw new UnsupportedCallbackException(callback);
        }
    }

    /**
     * Method that handles {@code SignatureVerificationKeyCallback}s with {@code X509CertificateRequest}s.
     * Called from {@code handleSignatureVerificationKeyCallback()}. Default implementation delegates to specific
     * handling methods.
     *
     * @see #handlePublicKeyBasedRequest(com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback,
     *      com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback.PublicKeyBasedRequest)
     * @see #handleX509IssuerSerialBasedRequest(com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback,
     *      com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback.X509IssuerSerialBasedRequest)
     * @see #handleX509SubjectKeyIdentifierBasedRequest(com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback,
     *      com.sun.xml.wss.impl.callback.SignatureVerificationKeyCallback.X509SubjectKeyIdentifierBasedRequest)
     */
    protected final void handleX509CertificateRequest(SignatureVerificationKeyCallback callback,
                                                      SignatureVerificationKeyCallback.X509CertificateRequest request)
            throws UnsupportedCallbackException, IOException {
        if (request instanceof SignatureVerificationKeyCallback.PublicKeyBasedRequest) {
            handlePublicKeyBasedRequest(callback, (SignatureVerificationKeyCallback.PublicKeyBasedRequest) request);
        }
        else if (request instanceof SignatureVerificationKeyCallback.X509IssuerSerialBasedRequest) {
            handleX509IssuerSerialBasedRequest(callback,
                    (SignatureVerificationKeyCallback.X509IssuerSerialBasedRequest) request);
        }
        else if (request instanceof SignatureVerificationKeyCallback.X509SubjectKeyIdentifierBasedRequest) {
            handleX509SubjectKeyIdentifierBasedRequest(callback,
                    (SignatureVerificationKeyCallback.X509SubjectKeyIdentifierBasedRequest) request);
        }
        else {
            throw new UnsupportedCallbackException(callback);
        }
    }

    /**
     * Template method that handles {@code SignatureKeyCallback}s with {@code PublicKeyBasedPrivKeyCertRequest}s.
     * Called from {@code handlePrivKeyCertRequest()}. Default implementation throws an
     * {@code UnsupportedCallbackException}.
     */
    protected void handleX509SubjectKeyIdentifierBasedRequest(SignatureVerificationKeyCallback callback,
                                                              SignatureVerificationKeyCallback.X509SubjectKeyIdentifierBasedRequest request)
            throws IOException, UnsupportedCallbackException {
        throw new UnsupportedCallbackException(callback);
    }

    /**
     * Template method that handles {@code SignatureKeyCallback}s with {@code X509IssuerSerialBasedRequest}s.
     * Called from {@code handlePrivKeyCertRequest()}. Default implementation throws an
     * {@code UnsupportedCallbackException}.
     */
    protected void handleX509IssuerSerialBasedRequest(SignatureVerificationKeyCallback callback,
                                                      SignatureVerificationKeyCallback.X509IssuerSerialBasedRequest request)
            throws IOException, UnsupportedCallbackException {
        throw new UnsupportedCallbackException(callback);
    }

    /**
     * Template method that handles {@code SignatureKeyCallback}s with {@code PublicKeyBasedRequest}s. Called
     * from {@code handlePrivKeyCertRequest()}. Default implementation throws an
     * {@code UnsupportedCallbackException}.
     */
    protected void handlePublicKeyBasedRequest(SignatureVerificationKeyCallback callback,
                                               SignatureVerificationKeyCallback.PublicKeyBasedRequest request)
            throws IOException, UnsupportedCallbackException {
        throw new UnsupportedCallbackException(callback);
    }
}
TOP

Related Classes of org.springframework.ws.soap.security.xwss.callback.CryptographyCallbackHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.