Author: yurize
Date: Sat Apr 21 20:14:04 2012
New Revision: 1328732
URL: http://svn.apache.org/viewvc?rev=1328732&view=rev
Log:
Updates GravatarProfilesFetcher to use HTTPS only if needed.
https://reviews.apache.org/r/4836/
Modified:
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/RobotApiModule.java
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/active/ActiveApiOperationServiceRegistry.java
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/dataapi/DataApiOperationServiceRegistry.java
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/FetchProfilesService.java
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/GravatarProfilesFetcher.java
Modified:
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/RobotApiModule.java
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/box/server/robots/RobotApiModule.java?rev=1328732&r1=1328731&r2=1328732&view=diff
==============================================================================
---
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/RobotApiModule.java
(original)
+++
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/RobotApiModule.java
Sat Apr 21 20:14:04 2012
@@ -20,6 +20,7 @@ package org.waveprotocol.box.server.robo
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.google.inject.AbstractModule;
import com.google.inject.Inject;
+import com.google.inject.Injector;
import com.google.inject.Provides;
import com.google.inject.Singleton;
import com.google.inject.name.Named;
@@ -39,8 +40,8 @@ import org.waveprotocol.box.server.CoreS
import
org.waveprotocol.box.server.robots.active.ActiveApiOperationServiceRegistry;
import org.waveprotocol.box.server.robots.dataapi.DataApiOAuthServlet;
import
org.waveprotocol.box.server.robots.dataapi.DataApiOperationServiceRegistry;
-import org.waveprotocol.box.server.robots.operations.NotifyOperationService;
-import org.waveprotocol.box.server.robots.operations.SearchService;
+import
org.waveprotocol.box.server.robots.operations.FetchProfilesService.ProfilesFetcher;
+import org.waveprotocol.box.server.robots.operations.GravatarProfilesFetcher;
import org.waveprotocol.box.server.robots.passive.RobotConnector;
import java.util.concurrent.Executor;
@@ -71,6 +72,7 @@ public class RobotApiModule extends Abst
REQUEST_TOKEN_PATH);
bind(String.class).annotatedWith(Names.named("access_token_path")).toInstance(
ACCESS_TOKEN_PATH);
+
bind(ProfilesFetcher.class).to(GravatarProfilesFetcher.class).in(Singleton.class);
}
@Provides
@@ -105,16 +107,16 @@ public class RobotApiModule extends Abst
@Singleton
@Inject
@Named("ActiveApiRegistry")
- protected OperationServiceRegistry
provideActiveApiRegistry(NotifyOperationService notifyOpService) {
- return new ActiveApiOperationServiceRegistry(notifyOpService);
+ protected OperationServiceRegistry provideActiveApiRegistry(Injector
injector) {
+ return new ActiveApiOperationServiceRegistry(injector);
}
@Provides
@Singleton
@Inject
@Named("DataApiRegistry")
- protected OperationServiceRegistry provideDataApiRegistry(SearchService
searchService) {
- return new DataApiOperationServiceRegistry(searchService);
+ protected OperationServiceRegistry provideDataApiRegistry(Injector injector)
{
+ return new DataApiOperationServiceRegistry(injector);
}
@Provides
Modified:
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/active/ActiveApiOperationServiceRegistry.java
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/box/server/robots/active/ActiveApiOperationServiceRegistry.java?rev=1328732&r1=1328731&r2=1328732&view=diff
==============================================================================
---
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/active/ActiveApiOperationServiceRegistry.java
(original)
+++
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/active/ActiveApiOperationServiceRegistry.java
Sat Apr 21 20:14:04 2012
@@ -18,6 +18,7 @@
package org.waveprotocol.box.server.robots.active;
import com.google.inject.Inject;
+import com.google.inject.Injector;
import com.google.wave.api.OperationType;
import org.waveprotocol.box.server.robots.AbstractOperationServiceRegistry;
@@ -43,9 +44,9 @@ public final class ActiveApiOperationSer
// the default client libraries
@SuppressWarnings("deprecation")
@Inject
- public ActiveApiOperationServiceRegistry(NotifyOperationService
notifyOpService) {
+ public ActiveApiOperationServiceRegistry(Injector injector) {
super();
-
+ NotifyOperationService notifyOpService =
injector.getInstance(NotifyOperationService.class);
// Register all the OperationProviders
register(OperationType.ROBOT_NOTIFY, notifyOpService);
register(OperationType.ROBOT_NOTIFY_CAPABILITIES_HASH, notifyOpService);
@@ -58,13 +59,13 @@ public final class ActiveApiOperationSer
register(OperationType.DOCUMENT_APPEND_INLINE_BLIP,
BlipOperationServices.create());
register(OperationType.DOCUMENT_APPEND_MARKUP,
BlipOperationServices.create());
register(OperationType.DOCUMENT_INSERT_INLINE_BLIP,
BlipOperationServices.create());
- register(
- OperationType.DOCUMENT_INSERT_INLINE_BLIP_AFTER_ELEMENT,
BlipOperationServices.create());
+ register(OperationType.DOCUMENT_INSERT_INLINE_BLIP_AFTER_ELEMENT,
+ BlipOperationServices.create());
register(OperationType.ROBOT_CREATE_WAVELET,
CreateWaveletService.create());
register(OperationType.ROBOT_FETCH_WAVE, FetchWaveService.create());
register(OperationType.DOCUMENT_MODIFY, DocumentModifyService.create());
register(OperationType.WAVELET_SET_TITLE, WaveletSetTitleService.create());
register(OperationType.ROBOT_FOLDER_ACTION, FolderActionService.create());
- register(OperationType.ROBOT_FETCH_PROFILES,
FetchProfilesService.create());
+ register(OperationType.ROBOT_FETCH_PROFILES,
injector.getInstance(FetchProfilesService.class));
}
}
Modified:
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/dataapi/DataApiOperationServiceRegistry.java
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/box/server/robots/dataapi/DataApiOperationServiceRegistry.java?rev=1328732&r1=1328731&r2=1328732&view=diff
==============================================================================
---
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/dataapi/DataApiOperationServiceRegistry.java
(original)
+++
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/dataapi/DataApiOperationServiceRegistry.java
Sat Apr 21 20:14:04 2012
@@ -18,6 +18,7 @@
package org.waveprotocol.box.server.robots.dataapi;
import com.google.inject.Inject;
+import com.google.inject.Injector;
import com.google.wave.api.OperationType;
import org.waveprotocol.box.server.robots.AbstractOperationServiceRegistry;
@@ -43,7 +44,7 @@ public final class DataApiOperationServi
// the default client libraries
@SuppressWarnings("deprecation")
@Inject
- public DataApiOperationServiceRegistry(SearchService searchService) {
+ public DataApiOperationServiceRegistry(Injector injector) {
super();
// Register all the OperationProviders
@@ -63,9 +64,9 @@ public final class DataApiOperationServi
register(OperationType.ROBOT_CREATE_WAVELET,
CreateWaveletService.create());
register(OperationType.ROBOT_FETCH_WAVE, FetchWaveService.create());
register(OperationType.DOCUMENT_MODIFY, DocumentModifyService.create());
- register(OperationType.ROBOT_SEARCH, searchService);
+ register(OperationType.ROBOT_SEARCH,
injector.getInstance(SearchService.class));
register(OperationType.WAVELET_SET_TITLE, WaveletSetTitleService.create());
register(OperationType.ROBOT_FOLDER_ACTION, FolderActionService.create());
- register(OperationType.ROBOT_FETCH_PROFILES,
FetchProfilesService.create());
+ register(OperationType.ROBOT_FETCH_PROFILES,
injector.getInstance(FetchProfilesService.class));
}
}
Modified:
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/FetchProfilesService.java
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/FetchProfilesService.java?rev=1328732&r1=1328731&r2=1328732&view=diff
==============================================================================
---
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/FetchProfilesService.java
(original)
+++
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/FetchProfilesService.java
Sat Apr 21 20:14:04 2012
@@ -20,6 +20,7 @@ package org.waveprotocol.box.server.robo
import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
+import com.google.inject.Inject;
import com.google.wave.api.FetchProfilesRequest;
import com.google.wave.api.FetchProfilesResult;
import com.google.wave.api.InvalidRequestException;
@@ -36,13 +37,13 @@ import java.util.Map;
/**
* {@link OperationService} for the "fetchProfiles" operation.
- *
+ *
* @author [email protected] (Yuri Zelikov)
*/
public class FetchProfilesService implements OperationService {
public interface ProfilesFetcher {
-
+
public static final String UNKNOWN_IMAGE = "/static/images/unknown.jpg";
public static final String UNKNOWN_PROFILE = "";
@@ -93,11 +94,8 @@ public class FetchProfilesService implem
private final ProfilesFetcher profilesFetcher;
- public static FetchProfilesService create() {
- return new FetchProfilesService(GravatarProfilesFetcher.create());
- }
-
- FetchProfilesService(ProfilesFetcher profilesFetcher) {
+ @Inject
+ public FetchProfilesService(ProfilesFetcher profilesFetcher) {
this.profilesFetcher = profilesFetcher;
}
Modified:
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/GravatarProfilesFetcher.java
URL:
http://svn.apache.org/viewvc/incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/GravatarProfilesFetcher.java?rev=1328732&r1=1328731&r2=1328732&view=diff
==============================================================================
---
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/GravatarProfilesFetcher.java
(original)
+++
incubator/wave/trunk/src/org/waveprotocol/box/server/robots/operations/GravatarProfilesFetcher.java
Sat Apr 21 20:14:04 2012
@@ -17,9 +17,12 @@
package org.waveprotocol.box.server.robots.operations;
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
import com.google.wave.api.ParticipantProfile;
import org.apache.commons.codec.digest.DigestUtils;
+import org.waveprotocol.box.server.CoreSettings;
import
org.waveprotocol.box.server.robots.operations.FetchProfilesService.ProfilesFetcher;
/**
@@ -33,14 +36,18 @@ import org.waveprotocol.box.server.robot
*/
public class GravatarProfilesFetcher implements ProfilesFetcher {
- private static final String GRAVATAR_URL =
"https://secure.gravatar.com/avatar/";
+ private final String SECURE_GRAVATAR_URL =
"https://secure.gravatar.com/avatar/";
+ private final String NON_SECURE_GRAVATAR_URL = "http://gravatar.com/avatar/";
- public static GravatarProfilesFetcher create() {
- return new GravatarProfilesFetcher();
- }
-
- private GravatarProfilesFetcher() {
+ private final String gravatarUrl;
+ @Inject
+ public GravatarProfilesFetcher(@Named(CoreSettings.ENABLE_SSL) boolean
enableSsl) {
+ if (enableSsl) {
+ gravatarUrl = SECURE_GRAVATAR_URL;
+ } else {
+ gravatarUrl = NON_SECURE_GRAVATAR_URL;
+ }
}
/**
@@ -50,7 +57,7 @@ public class GravatarProfilesFetcher imp
// Hexadecimal MD5 hash of the requested user's lowercased email address
// with all whitespace trimmed.
String emailHash = DigestUtils.md5Hex(email.toLowerCase().trim());
- return GRAVATAR_URL + emailHash + ".jpg?s=100&d=identicon";
+ return gravatarUrl + emailHash + ".jpg?s=100&d=identicon";
}
@Override