001: /*
002: * BEGIN_HEADER - DO NOT EDIT
003: *
004: * The contents of this file are subject to the terms
005: * of the Common Development and Distribution License
006: * (the "License"). You may not use this file except
007: * in compliance with the License.
008: *
009: * You can obtain a copy of the license at
010: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
011: * See the License for the specific language governing
012: * permissions and limitations under the License.
013: *
014: * When distributing Covered Code, include this CDDL
015: * HEADER in each file and include the License file at
016: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
017: * If applicable add the following below this CDDL HEADER,
018: * with the fields enclosed by brackets "[]" replaced with
019: * your own identifying information: Portions Copyright
020: * [year] [name of copyright owner]
021: */
022:
023: /*
024: * @(#)HttpSecurityHandler.java
025: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
026: *
027: * END_HEADER - DO NOT EDIT
028: */
029: /**
030: * HttpSecurityHandler.java
031: *
032: * SUN PROPRIETARY/CONFIDENTIAL.
033: * This software is the proprietary information of Sun Microsystems, Inc.
034: * Use is subject to license terms.
035: *
036: * Created on October 19, 2004, 5:53 PM
037: */package com.sun.jbi.internal.security;
038:
039: import com.sun.jbi.binding.security.Endpoint;
040: import com.sun.jbi.binding.security.HttpErrorResponseException;
041:
042: import java.io.IOException;
043:
044: import java.net.URL;
045: import java.net.URLConnection;
046: import java.security.KeyManagementException;
047: import java.security.KeyStoreException;
048: import java.security.NoSuchAlgorithmException;
049: import java.security.UnrecoverableKeyException;
050: import java.security.cert.CertificateException;
051: import java.security.cert.X509Certificate;
052: import javax.security.auth.Subject;
053: import javax.servlet.http.HttpServletRequest;
054:
055: /**
056: * No-op implementation of HttpsSecurityHandler.
057: *
058: * @author Sun Microsystems, Inc.
059: */
060: public class HttpSecurityHandler implements
061: com.sun.jbi.binding.security.HttpSecurityHandler {
062:
063: /**
064: * Make this a secure Connection. The choice of using SSL3.0/TLS and the TrustStore
065: * Keystore details should come from the endpoint/operation details.
066: * @param serverURL Is the Server URL the secure connection is being made to.
067: * @param endpoint is the Endpoint on behalf of which the secure connection
068: * is being made.
069: * @throws KeyStoreException when a problem is encountered accessing the KeyStore
070: * @throws NoSuchAlgorithmException If the TLS algorithm is unknown
071: * @throws KeyManagementException on KeyMamagement errors.
072: * @throws CertificateException on certificate related problems.
073: * @throws UnrecoverableKeyException If a required Key cannot be obtained from the
074: * store.
075: * @throws java.io.IOException on IO realted errors.
076: * @return an instance of a Secure URL Connection
077: */
078: public URLConnection createSecureClientConnection(URL serverURL,
079: Endpoint endpoint) throws IOException, KeyStoreException,
080: NoSuchAlgorithmException, KeyManagementException,
081: CertificateException, UnrecoverableKeyException {
082: return serverURL.openConnection();
083:
084: }
085:
086: /**
087: * Authenticate a HttpServletRequest.
088: *
089: * If the Endpoint requires SSL Client Authentication, this method gets the Client
090: * Certificate from the request and authenticates the Sender. If a Client Certificate
091: * is missing an exception is thrown.
092: *
093: * If the Endpoint does not require SSL Client Authentication none of the above steps
094: * are performed and an empty Subject is returned. This method does not return a null
095: * Subject to avoid NullPOinterExceptions.
096: *
097: * @param request is the HttpServletRequest.
098: * @param endpoint is the targeted Endpoint
099: * @param subject is the Sender Subject to be updated, if null a new one is created.
100: * @throws HttpErrorResponseException when the processing results in a Http Error
101: * response to be sent to the client.
102: */
103: public Subject authenticateSenderRequest(
104: HttpServletRequest request, Endpoint endpoint,
105: Subject subject) throws HttpErrorResponseException {
106: return new Subject();
107: }
108:
109: /**
110: * Authenticate the Sender Request by getting the Sender identity from the
111: * X509Certificate
112: *
113: * @param cert is the trusted X.509 Certificate.
114: * @param endpoint is the targeted Endpoint
115: * @throws HttpErrorResponseException when the processing results in a Http Error
116: * response to be sent to the client.
117: */
118: public Subject authenticateSenderRequest(X509Certificate cert,
119: Endpoint endpoint, Subject subject)
120: throws HttpErrorResponseException {
121: return new Subject();
122: }
123:
124: }
|