You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ji...@apache.org on 2016/10/07 22:08:59 UTC
incubator-geode git commit: GEODE-1973: having GMSAuthenticator work
on a locator with no cache.
Repository: incubator-geode
Updated Branches:
refs/heads/develop 654b06ed2 -> febc634e8
GEODE-1973: having GMSAuthenticator work on a locator with no cache.
Project: http://git-wip-us.apache.org/repos/asf/incubator-geode/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-geode/commit/febc634e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-geode/tree/febc634e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-geode/diff/febc634e
Branch: refs/heads/develop
Commit: febc634e80ff902f161b5e3e09cb214199df9566
Parents: 654b06e
Author: Jinmei Liao <ji...@pivotal.io>
Authored: Fri Oct 7 14:13:38 2016 -0700
Committer: Jinmei Liao <ji...@pivotal.io>
Committed: Fri Oct 7 15:08:23 2016 -0700
----------------------------------------------------------------------
.../internal/membership/gms/auth/GMSAuthenticator.java | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/febc634e/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java
----------------------------------------------------------------------
diff --git a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java
index 8e4c15d..3cd9aa0 100755
--- a/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java
+++ b/geode-core/src/main/java/org/apache/geode/distributed/internal/membership/gms/auth/GMSAuthenticator.java
@@ -22,6 +22,8 @@ import static org.apache.geode.internal.i18n.LocalizedStrings.*;
import java.security.Principal;
import java.util.Properties;
+import org.apache.commons.lang.StringUtils;
+
import org.apache.geode.LogWriter;
import org.apache.geode.distributed.DistributedMember;
import org.apache.geode.distributed.internal.membership.InternalDistributedMember;
@@ -106,7 +108,11 @@ public class GMSAuthenticator implements Authenticator {
* Method is package protected to be used in testing.
*/
String authenticate(DistributedMember member, Properties credentials, Properties secProps) throws AuthenticationFailedException {
- if (!securityService.isPeerSecurityRequired()) {
+ // For older systems, locator might be started without cache, so secureService may not be initialized here. We need to check
+ // if the passed in secProps has peer authenticator or not
+ String authMethod = secProps.getProperty(SECURITY_PEER_AUTHENTICATOR);
+ // at this point,
+ if (!securityService.isPeerSecurityRequired() && StringUtils.isBlank(authMethod)) {
return null;
}
@@ -141,14 +147,13 @@ public class GMSAuthenticator implements Authenticator {
* Method is package protected to be used in testing.
*/
Principal invokeAuthenticator(Properties securityProps, DistributedMember member, Properties credentials) throws AuthenticationFailedException {
- String authMethod = securityProps.getProperty(SECURITY_PEER_AUTHENTICATOR);
+ String authMethod = securityProps.getProperty(SECURITY_PEER_AUTHENTICATOR);
org.apache.geode.security.Authenticator auth = null;
try {
- auth = SecurityService.getObjectOfTypeFromFactoryMethod(authMethod, org.apache.geode.security.Authenticator.class);
+ auth = SecurityService.getObjectOfType(authMethod, org.apache.geode.security.Authenticator.class);
LogWriter logWriter = this.services.getLogWriter();
LogWriter securityLogWriter = this.services.getSecurityLogWriter();
-
auth.init(this.securityProps, logWriter, securityLogWriter); // this.securityProps contains security-ldap-basedn but security-ldap-baseDomainName is expected
return auth.authenticate(credentials, member);