protected OAuthConsumer getOAuthConsumer(SecurityToken securityToken, String serviceName) throws GadgetException { long userId = GetterUtil.getLong(securityToken.getViewerId()); User user = null; try { user = UserLocalServiceUtil.getUser(userId); } catch (Exception e) { throw new GadgetException(GadgetException.Code.INTERNAL_SERVER_ERROR, e); } Gadget gadget = null; try { gadget = GadgetLocalServiceUtil.getGadget(user.getCompanyId(), securityToken.getAppUrl()); } catch (Exception e) { throw new GadgetException(GadgetException.Code.INTERNAL_SERVER_ERROR, e); } OAuthConsumer oAuthConsumer = null; try { oAuthConsumer = OAuthConsumerLocalServiceUtil.getOAuthConsumer(gadget.getGadgetId(), serviceName); } catch (Exception e) { return _oAuthConsumer; } if (oAuthConsumer.getKeyType().equals(OAuthConsumerConstants.KEY_TYPE_RSA_PRIVATE)) { if (_oAuthConsumer == null) { throw new GadgetException( GadgetException.Code.INTERNAL_SERVER_ERROR, "No OAuth key specified"); } oAuthConsumer.setConsumerSecret(_oAuthConsumer.getConsumerSecret()); } return oAuthConsumer; }
public ConsumerInfo getConsumerKeyAndSecret( SecurityToken securityToken, String serviceName, OAuthServiceProvider oAuthServiceProvider) throws GadgetException { OAuthConsumer oAuthConsumer = getOAuthConsumer(securityToken, serviceName); if (oAuthConsumer == null) { throw new GadgetException( GadgetException.Code.INTERNAL_SERVER_ERROR, "No key for gadget " + securityToken.getAppUrl() + " and service " + serviceName); } net.oauth.OAuthConsumer netOAuthConsumer = null; String keyType = oAuthConsumer.getKeyType(); if (keyType.equals(OAuthConsumerConstants.KEY_TYPE_RSA_PRIVATE)) { netOAuthConsumer = new net.oauth.OAuthConsumer( null, oAuthConsumer.getConsumerKey(), null, oAuthServiceProvider); netOAuthConsumer.setProperty(OAuth.OAUTH_SIGNATURE_METHOD, OAuth.RSA_SHA1); netOAuthConsumer.setProperty(RSA_SHA1.PRIVATE_KEY, oAuthConsumer.getConsumerSecret()); } else { netOAuthConsumer = new net.oauth.OAuthConsumer( null, oAuthConsumer.getConsumerKey(), oAuthConsumer.getConsumerSecret(), oAuthServiceProvider); netOAuthConsumer.setProperty(OAuth.OAUTH_SIGNATURE_METHOD, OAuth.HMAC_SHA1); } String keyName = oAuthConsumer.getKeyName(); String callbackURL = _callbackURL.replace("%host%", ShindigUtil.getHost()); return new ConsumerInfo(netOAuthConsumer, keyName, callbackURL); }