blob: a4983a8bb7c049d8841c4c2dae106b1b3be2d3e5 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.apache.camel.component.gae.auth;
import java.util.Map;
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.component.gae.bind.OutboundBinding;
import org.apache.camel.impl.DefaultComponent;
/**
* The <a href="http://camel.apache.org/gauth.html">GAuth Component</a>
* implements a Google-specific OAuth comsumer. This component supports OAuth
* 1.0a. For background information refer to <a
* href="http://code.google.com/apis/accounts/docs/OAuth.html">OAuth for Web
* Applications</a> and the <a
* href="http://code.google.com/apis/gdata/docs/auth/oauth.html">GData developer
* guide for OAuth.</a>.
*/
public class GAuthComponent extends DefaultComponent {
private String consumerKey;
private String consumerSecret;
private GAuthKeyLoader keyLoader;
public GAuthComponent() {
this(null);
}
public GAuthComponent(CamelContext context) {
super(context);
}
public String getConsumerKey() {
return consumerKey;
}
public void setConsumerKey(String consumerKey) {
this.consumerKey = consumerKey;
}
public String getConsumerSecret() {
return consumerSecret;
}
public void setConsumerSecret(String consumerSecret) {
this.consumerSecret = consumerSecret;
}
public GAuthKeyLoader getKeyLoader() {
return keyLoader;
}
public void setKeyLoader(GAuthKeyLoader keyLoader) {
this.keyLoader = keyLoader;
}
@Override
public GAuthEndpoint createEndpoint(String uri) throws Exception {
return (GAuthEndpoint)super.createEndpoint(uri);
}
@Override
@SuppressWarnings("unchecked")
protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
GAuthEndpoint endpoint = new GAuthEndpoint(uri, this, remaining);
OutboundBinding authorizeBinding = resolveAndRemoveReferenceParameter(
parameters, "authorizeBindingRef", GAuthAuthorizeBinding.class, new GAuthAuthorizeBinding());
OutboundBinding upgradeBinding = resolveAndRemoveReferenceParameter(
parameters, "upgradeBindingRef", GAuthUpgradeBinding.class, new GAuthUpgradeBinding());
GAuthService service = resolveAndRemoveReferenceParameter(
parameters, "serviceRef", GAuthService.class, new GAuthServiceImpl(endpoint));
GAuthKeyLoader keyLoader = resolveAndRemoveReferenceParameter(
parameters, "keyLoaderRef", GAuthKeyLoader.class);
endpoint.setAuthorizeBinding(authorizeBinding);
endpoint.setUpgradeBinding(upgradeBinding);
endpoint.setService(service);
endpoint.setKeyLoader(keyLoader);
return endpoint;
}
}