diff --git a/acl-plug/pom.xml b/acl-plug/pom.xml index 1cdc4a29da51b1a46e8385cb59a733f8a73e12b3..762d7a1910049f7a71e8bd16a87616d20fcc014f 100644 --- a/acl-plug/pom.xml +++ b/acl-plug/pom.xml @@ -18,7 +18,7 @@ rocketmq-all 4.4.0-SNAPSHOT - rocketmq-acl-plug + rocketmq-acl rocketmq-acl-plug ${project.version} http://maven.apache.org diff --git a/acl-plug/src/main/java/org/apache/rocketmq/acl/AccessValidator.java b/acl-plug/src/main/java/org/apache/rocketmq/acl/AccessValidator.java index 46f5728b43f52f4aeeee552cc921f73114a1735f..0b1b0823c508cf01bd43a3ad0ec5b9e230e5ac05 100644 --- a/acl-plug/src/main/java/org/apache/rocketmq/acl/AccessValidator.java +++ b/acl-plug/src/main/java/org/apache/rocketmq/acl/AccessValidator.java @@ -22,14 +22,16 @@ import org.apache.rocketmq.remoting.protocol.RemotingCommand; public interface AccessValidator { /** * Parse to get the AccessResource(user, resource, needed permission) + * * @param request * @return */ - AccessResource parse(RemotingCommand request,String remoteAddr); + AccessResource parse(RemotingCommand request, String remoteAddr); /** * Validate the access resource. + * * @param accessResource */ - void validate(AccessResource accessResource) ; + void validate(AccessResource accessResource); } diff --git a/acl-plug/src/main/java/org/apache/rocketmq/acl/DefaultAccessValidator.java b/acl-plug/src/main/java/org/apache/rocketmq/acl/DefaultAccessValidator.java index 215a756e01bd45f7966f5dd114fe0add9f38ae90..704ace47b7841ba8e0199a17d34b991f15be9f64 100644 --- a/acl-plug/src/main/java/org/apache/rocketmq/acl/DefaultAccessValidator.java +++ b/acl-plug/src/main/java/org/apache/rocketmq/acl/DefaultAccessValidator.java @@ -21,11 +21,13 @@ import org.apache.rocketmq.remoting.protocol.RemotingCommand; public class DefaultAccessValidator implements AccessValidator { - @Override public AccessResource parse(RemotingCommand request,String remoteAddr ) { + @Override + public AccessResource parse(RemotingCommand request, String remoteAddr) { return null; } - @Override public void validate(AccessResource accessResource) { + @Override + public void validate(AccessResource accessResource) { } } diff --git a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/AccessContralAnalysis.java b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/AccessContralAnalysis.java index 75c907d82b4b7485d011145c8b8f3450d4545be9..1adf6d432eaeaa49872608eba9b23f9b560aea42 100644 --- a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/AccessContralAnalysis.java +++ b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/AccessContralAnalysis.java @@ -16,14 +16,15 @@ */ package org.apache.rocketmq.acl.plug; +import org.apache.commons.lang3.StringUtils; +import org.apache.rocketmq.acl.plug.entity.AccessControl; +import org.apache.rocketmq.acl.plug.exception.AclPlugRuntimeException; + import java.lang.reflect.Field; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; -import org.apache.commons.lang3.StringUtils; -import org.apache.rocketmq.acl.plug.entity.AccessControl; -import org.apache.rocketmq.acl.plug.exception.AclPlugRuntimeException; public class AccessContralAnalysis { diff --git a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/Authentication.java b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/Authentication.java index 901cc409d7882ed47ab9397e90c419ee85748e65..ae247e7220e43c495e9bc63e73df0ad852e1dd49 100644 --- a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/Authentication.java +++ b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/Authentication.java @@ -24,7 +24,7 @@ import org.apache.rocketmq.acl.plug.entity.BorkerAccessControl; public class Authentication { public boolean authentication(AuthenticationInfo authenticationInfo, - AccessControl accessControl, AuthenticationResult authenticationResult) { + AccessControl accessControl, AuthenticationResult authenticationResult) { int code = accessControl.getCode(); if (!authenticationInfo.getAuthority().get(code)) { authenticationResult.setResultString(String.format("code is %d Authentication failed", code)); diff --git a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/DefaultAclRemotingServiceImpl.java b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/DefaultAclRemotingServiceImpl.java index 7bb13a181062c06ab51590aab0c09d9b77b70829..8abf35a30b8fea9c35cb4b3880e7b51706c19f5c 100644 --- a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/DefaultAclRemotingServiceImpl.java +++ b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/DefaultAclRemotingServiceImpl.java @@ -16,8 +16,6 @@ */ package org.apache.rocketmq.acl.plug; -import java.util.HashMap; - import org.apache.commons.lang3.StringUtils; import org.apache.rocketmq.acl.AccessResource; import org.apache.rocketmq.acl.AccessValidator; @@ -29,16 +27,18 @@ import org.apache.rocketmq.acl.plug.entity.ControllerParameters; import org.apache.rocketmq.acl.plug.exception.AclPlugRuntimeException; import org.apache.rocketmq.remoting.protocol.RemotingCommand; -public class DefaultAclRemotingServiceImpl implements AclRemotingService ,AccessValidator{ +import java.util.HashMap; + +public class DefaultAclRemotingServiceImpl implements AclRemotingService, AccessValidator { private AclPlugEngine aclPlugEngine; public DefaultAclRemotingServiceImpl() { - ControllerParameters controllerParameters = new ControllerParameters(); - this.aclPlugEngine = new PlainAclPlugEngine(controllerParameters); - this.aclPlugEngine.initialize(); + ControllerParameters controllerParameters = new ControllerParameters(); + this.aclPlugEngine = new PlainAclPlugEngine(controllerParameters); + this.aclPlugEngine.initialize(); } - + public DefaultAclRemotingServiceImpl(AclPlugEngine aclPlugEngine) { this.aclPlugEngine = aclPlugEngine; } @@ -55,9 +55,9 @@ public class DefaultAclRemotingServiceImpl implements AclRemotingService ,Access return authenticationResult; } - @Override - public AccessResource parse(RemotingCommand request ,String remoteAddr) { - HashMap extFields = request.getExtFields(); + @Override + public AccessResource parse(RemotingCommand request, String remoteAddr) { + HashMap extFields = request.getExtFields(); AccessControl accessControl = new AccessControl(); accessControl.setCode(request.getCode()); accessControl.setRecognition(remoteAddr); @@ -66,19 +66,19 @@ public class DefaultAclRemotingServiceImpl implements AclRemotingService ,Access accessControl.setPassword(extFields.get("password")); accessControl.setNetaddress(StringUtils.split(remoteAddr, ":")[0]); accessControl.setTopic(extFields.get("topic")); -} - return accessControl; - } + } + return accessControl; + } - @Override - public void validate(AccessResource accessResource) { - AuthenticationResult authenticationResult = aclPlugEngine.eachCheckAuthentication((AccessControl)accessResource); + @Override + public void validate(AccessResource accessResource) { + AuthenticationResult authenticationResult = aclPlugEngine.eachCheckAuthentication((AccessControl) accessResource); if (authenticationResult.getException() != null) { throw new AclPlugRuntimeException(String.format("eachCheck the inspection appear exception, accessControl data is %s", accessResource.toString()), authenticationResult.getException()); } if (authenticationResult.getAccessControl() == null || !authenticationResult.isSucceed()) { throw new AclPlugRuntimeException(String.format("%s accessControl data is %s", authenticationResult.getResultString(), accessResource.toString())); } - } + } } diff --git a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/engine/AclPlugEngine.java b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/engine/AclPlugEngine.java index e4ef9872741a9cbc779ce90fac92a8b981d66166..d1572755eeb6e6bdc9cb2703997decf160409eb9 100644 --- a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/engine/AclPlugEngine.java +++ b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/engine/AclPlugEngine.java @@ -30,8 +30,8 @@ public interface AclPlugEngine { public void deleteLoginInfo(String remoteAddr); public AuthenticationResult eachCheckLoginAndAuthentication(AccessControl accessControl); - - public AuthenticationResult eachCheckAuthentication(AccessControl accessControl); + + public AuthenticationResult eachCheckAuthentication(AccessControl accessControl); public void initialize(); } diff --git a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/engine/AuthenticationInfoManagementAclPlugEngine.java b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/engine/AuthenticationInfoManagementAclPlugEngine.java index 12f7d8b29a34dda1fd9dbd2dde8053138094539b..a6399fc3e468198d86e6b1afb24036f90fc00530 100644 --- a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/engine/AuthenticationInfoManagementAclPlugEngine.java +++ b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/engine/AuthenticationInfoManagementAclPlugEngine.java @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; + import org.apache.rocketmq.acl.plug.AccessContralAnalysis; import org.apache.rocketmq.acl.plug.Authentication; import org.apache.rocketmq.acl.plug.entity.AccessControl; @@ -61,10 +62,10 @@ public abstract class AuthenticationInfoManagementAclPlugEngine implements AclPl accessControlMap.put(accessControl.getAccount(), accessControlAddressList); } AuthenticationInfo authenticationInfo = new AuthenticationInfo(accessContralAnalysis.analysis(accessControl), accessControl, netaddressStrategy); - accessControlAddressList.add( authenticationInfo); + accessControlAddressList.add(authenticationInfo); log.info("authenticationInfo is {}", authenticationInfo.toString()); } catch (Exception e) { - throw new AclPlugRuntimeException(String.format("Exception info %s %s" ,e.getMessage() , accessControl.toString()), e); + throw new AclPlugRuntimeException(String.format("Exception info %s %s", e.getMessage(), accessControl.toString()), e); } } @@ -90,11 +91,11 @@ public abstract class AuthenticationInfoManagementAclPlugEngine implements AclPl } else { List accessControlAddressList = accessControlMap.get(accessControl.getAccount()); if (accessControlAddressList != null) { - for(AuthenticationInfo ai : accessControlAddressList) { - if(ai.getNetaddressStrategy().match(accessControl)&&ai.getAccessControl().getPassword().equals(accessControl.getPassword())) { - return ai; - } - } + for (AuthenticationInfo ai : accessControlAddressList) { + if (ai.getNetaddressStrategy().match(accessControl) && ai.getAccessControl().getPassword().equals(accessControl.getPassword())) { + return ai; + } + } } } return null; @@ -115,19 +116,20 @@ public abstract class AuthenticationInfoManagementAclPlugEngine implements AclPl } return authenticationResult; } - - public AuthenticationResult eachCheckAuthentication(AccessControl accessControl) { - AuthenticationResult authenticationResult = new AuthenticationResult(); - AuthenticationInfo authenticationInfo = getAccessControl(accessControl); - if(authenticationInfo != null) { - boolean boo = authentication.authentication(authenticationInfo, accessControl, authenticationResult); - authenticationResult.setSucceed(boo); - }else { - authenticationResult.setResultString("accessControl is null, Please check login, password, IP\""); - } - - - return authenticationResult; + + public AuthenticationResult eachCheckAuthentication(AccessControl accessControl) { + AuthenticationResult authenticationResult = new AuthenticationResult(); + AuthenticationInfo authenticationInfo = getAccessControl(accessControl); + if (authenticationInfo != null) { + boolean boo = authentication.authentication(authenticationInfo, accessControl, authenticationResult); + authenticationResult.setSucceed(boo); + authenticationResult.setAccessControl(authenticationInfo.getAccessControl()); + } else { + authenticationResult.setResultString("accessControl is null, Please check login, password, IP\""); + } + + + return authenticationResult; } void setBorkerAccessControlTransport(BorkerAccessControlTransport transport) { @@ -146,5 +148,5 @@ public abstract class AuthenticationInfoManagementAclPlugEngine implements AclPl } protected abstract AuthenticationInfo getAuthenticationInfo(AccessControl accessControl, - AuthenticationResult authenticationResult); + AuthenticationResult authenticationResult); } diff --git a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/engine/LoginInfoAclPlugEngine.java b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/engine/LoginInfoAclPlugEngine.java index e8dc59c422a2cc9e5d1821fc10e1f86462561d1f..35b568349ece1ac9979636a73b6ca569bcc53f14 100644 --- a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/engine/LoginInfoAclPlugEngine.java +++ b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/engine/LoginInfoAclPlugEngine.java @@ -18,6 +18,7 @@ package org.apache.rocketmq.acl.plug.engine; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; + import org.apache.rocketmq.acl.plug.entity.AccessControl; import org.apache.rocketmq.acl.plug.entity.AuthenticationInfo; import org.apache.rocketmq.acl.plug.entity.AuthenticationResult; @@ -53,7 +54,7 @@ public abstract class LoginInfoAclPlugEngine extends AuthenticationInfoManagemen } protected AuthenticationInfo getAuthenticationInfo(AccessControl accessControl, - AuthenticationResult authenticationResult) { + AuthenticationResult authenticationResult) { LoginInfo loginInfo = getLoginInfo(accessControl); if (loginInfo != null && loginInfo.getAuthenticationInfo() != null) { return loginInfo.getAuthenticationInfo(); diff --git a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/engine/PlainAclPlugEngine.java b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/engine/PlainAclPlugEngine.java index d1a7d9529b6a956b100454a0fd32bb074cd77058..bcb89b8fa288c463d190457f95882edb04a263a9 100644 --- a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/engine/PlainAclPlugEngine.java +++ b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/engine/PlainAclPlugEngine.java @@ -16,18 +16,19 @@ */ package org.apache.rocketmq.acl.plug.engine; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; import org.apache.rocketmq.acl.plug.entity.BorkerAccessControlTransport; import org.apache.rocketmq.acl.plug.entity.ControllerParameters; import org.apache.rocketmq.acl.plug.exception.AclPlugRuntimeException; import org.yaml.snakeyaml.Yaml; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + public class PlainAclPlugEngine extends LoginInfoAclPlugEngine { public PlainAclPlugEngine( - ControllerParameters controllerParameters) throws AclPlugRuntimeException { + ControllerParameters controllerParameters) throws AclPlugRuntimeException { super(controllerParameters); } diff --git a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/AccessControl.java b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/AccessControl.java index b46a034b51e46ad2726bfbde16190ce86912bebe..092a97ef44bdfc2615b75d5a866c40010f5399ca 100644 --- a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/AccessControl.java +++ b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/AccessControl.java @@ -18,7 +18,7 @@ package org.apache.rocketmq.acl.plug.entity; import org.apache.rocketmq.acl.AccessResource; -public class AccessControl implements AccessResource{ +public class AccessControl implements AccessResource { private String account; @@ -87,8 +87,8 @@ public class AccessControl implements AccessResource{ public String toString() { StringBuilder builder = new StringBuilder(); builder.append("AccessControl [account=").append(account).append(", password=").append(password) - .append(", netaddress=").append(netaddress).append(", recognition=").append(recognition) - .append(", code=").append(code).append(", topic=").append(topic).append("]"); + .append(", netaddress=").append(netaddress).append(", recognition=").append(recognition) + .append(", code=").append(code).append(", topic=").append(topic).append("]"); return builder.toString(); } diff --git a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/AuthenticationInfo.java b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/AuthenticationInfo.java index 981bef855332e6fe8cbf7451636e901ce742f337..a1696e2e44c3d869e4c90570bbb0f2a9d6632288 100644 --- a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/AuthenticationInfo.java +++ b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/AuthenticationInfo.java @@ -16,10 +16,11 @@ */ package org.apache.rocketmq.acl.plug.entity; +import org.apache.rocketmq.acl.plug.strategy.NetaddressStrategy; + import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; -import org.apache.rocketmq.acl.plug.strategy.NetaddressStrategy; public class AuthenticationInfo { @@ -30,7 +31,7 @@ public class AuthenticationInfo { private Map authority; public AuthenticationInfo(Map authority, AccessControl accessControl, - NetaddressStrategy netaddressStrategy) { + NetaddressStrategy netaddressStrategy) { super(); this.authority = authority; this.accessControl = accessControl; @@ -65,7 +66,7 @@ public class AuthenticationInfo { public String toString() { StringBuilder builder = new StringBuilder(); builder.append("AuthenticationInfo [accessControl=").append(accessControl).append(", netaddressStrategy=") - .append(netaddressStrategy).append(", authority={"); + .append(netaddressStrategy).append(", authority={"); Iterator> it = authority.entrySet().iterator(); while (it.hasNext()) { Entry e = it.next(); diff --git a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/BorkerAccessControl.java b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/BorkerAccessControl.java index d40fadfacbabaf0e27c7690450f8dce358dd198c..b5eb1187d2859932df50e38caaac31de4efd8af0 100644 --- a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/BorkerAccessControl.java +++ b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/BorkerAccessControl.java @@ -556,8 +556,8 @@ public class BorkerAccessControl extends AccessControl { public String toString() { StringBuilder builder = new StringBuilder(); builder.append("BorkerAccessControl [permitSendTopic=").append(permitSendTopic).append(", noPermitSendTopic=") - .append(noPermitSendTopic).append(", permitPullTopic=").append(permitPullTopic) - .append(", noPermitPullTopic=").append(noPermitPullTopic); + .append(noPermitSendTopic).append(", permitPullTopic=").append(permitPullTopic) + .append(", noPermitPullTopic=").append(noPermitPullTopic); if (!!sendMessage) builder.append(", sendMessage=").append(sendMessage); if (!!sendMessageV2) diff --git a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/ControllerParameters.java b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/ControllerParameters.java index 74ae4a7ecb7ed13e51071d3bd5ac05fb5eb95d50..94873b5fcf155983adc460272e63cc31571cf3cb 100644 --- a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/ControllerParameters.java +++ b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/ControllerParameters.java @@ -45,7 +45,7 @@ public class ControllerParameters { public String toString() { StringBuilder builder = new StringBuilder(); builder.append("ControllerParametersEntity [fileHome=").append(fileHome).append(", accessContralAnalysisClass=") - .append(accessContralAnalysisClass).append("]"); + .append(accessContralAnalysisClass).append("]"); return builder.toString(); } diff --git a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/LoginInfo.java b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/LoginInfo.java index e08d7d38b1046b41a45b53b8ed391b63be511d5c..df1166be639764b9b9f682b6bb1b1a63ac7a9dfd 100644 --- a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/LoginInfo.java +++ b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/entity/LoginInfo.java @@ -74,8 +74,8 @@ public class LoginInfo { public String toString() { StringBuilder builder = new StringBuilder(); builder.append("LoginInfo [recognition=").append(recognition).append(", loginTime=").append(loginTime) - .append(", operationTime=").append(operationTime).append(", clear=").append(clear) - .append(", authenticationInfo=").append(authenticationInfo).append("]"); + .append(", operationTime=").append(operationTime).append(", clear=").append(clear) + .append(", authenticationInfo=").append(authenticationInfo).append("]"); return builder.toString(); } diff --git a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/strategy/NetaddressStrategyFactory.java b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/strategy/NetaddressStrategyFactory.java index cdb78675e95198ecc2a6a10f996880ce04000329..4be995309168fd85018b6ca3b16580f597d82b74 100644 --- a/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/strategy/NetaddressStrategyFactory.java +++ b/acl-plug/src/main/java/org/apache/rocketmq/acl/plug/strategy/NetaddressStrategyFactory.java @@ -16,13 +16,14 @@ */ package org.apache.rocketmq.acl.plug.strategy; -import java.util.HashSet; -import java.util.Set; import org.apache.commons.lang3.StringUtils; import org.apache.rocketmq.acl.plug.AclUtils; import org.apache.rocketmq.acl.plug.entity.AccessControl; import org.apache.rocketmq.acl.plug.exception.AclPlugRuntimeException; +import java.util.HashSet; +import java.util.Set; + public class NetaddressStrategyFactory { public static final NullNetaddressStrategy NULL_NET_ADDRESS_STRATEGY = new NullNetaddressStrategy(); diff --git a/acl-plug/src/test/java/org/apache/rocketmq/acl/plug/AclRemotingServiceTest.java b/acl-plug/src/test/java/org/apache/rocketmq/acl/plug/AclRemotingServiceTest.java index c0d8cdb15378cda15bd78ec9d227a6ba2c62be07..ba0c8dc1c8743e79916dc90f9b8fd7df0df92ff0 100644 --- a/acl-plug/src/test/java/org/apache/rocketmq/acl/plug/AclRemotingServiceTest.java +++ b/acl-plug/src/test/java/org/apache/rocketmq/acl/plug/AclRemotingServiceTest.java @@ -15,23 +15,23 @@ import org.junit.Test;; public class AclRemotingServiceTest { - - AclRemotingService defaultAclService; - - AccessValidator accessValidator; - - AccessControl accessControl; + + AclRemotingService defaultAclService; + + AccessValidator accessValidator; + + AccessControl accessControl; AccessControl accessControlTwo; - - @Before - public void init() { - System.setProperty("rocketmq.home.dir", "src/test/resources"); - DefaultAclRemotingServiceImpl aclRemotingServiceImpl = new DefaultAclRemotingServiceImpl(); - defaultAclService = aclRemotingServiceImpl; - accessValidator = aclRemotingServiceImpl; - - accessControl = new BorkerAccessControl(); + + @Before + public void init() { + System.setProperty("rocketmq.home.dir", "src/test/resources"); + DefaultAclRemotingServiceImpl aclRemotingServiceImpl = new DefaultAclRemotingServiceImpl(); + defaultAclService = aclRemotingServiceImpl; + accessValidator = aclRemotingServiceImpl; + + accessControl = new BorkerAccessControl(); accessControl.setAccount("RocketMQ"); accessControl.setPassword("1234567"); accessControl.setNetaddress("192.0.0.1"); @@ -42,91 +42,90 @@ public class AclRemotingServiceTest { accessControlTwo.setPassword("1234567"); accessControlTwo.setNetaddress("192.0.2.1"); accessControlTwo.setRecognition("127.0.0.1:2"); - } - - - - @Test - public void defaultConstructorTest() { - System.setProperty("rocketmq.home.dir", "src/test/resources"); - AclRemotingService defaultAclService = new DefaultAclRemotingServiceImpl(); - Assert.assertNotNull(defaultAclService); - } - - @Test - public void parseTest() { - RemotingCommand remotingCommand = RemotingCommand.createResponseCommand(34, ""); - HashMap map = new HashMap<>(); - map.put("account", "RocketMQ"); - map.put("password","123456"); - map.put("topic","test"); - remotingCommand.setExtFields(map); - - AccessResource accessResource = accessValidator.parse(remotingCommand, "127.0.0.1:123"); - AccessControl accessControl = (AccessControl)accessResource; - AccessControl newAccessControl = new AccessControl(); - newAccessControl.setAccount("RocketMQ"); - newAccessControl.setPassword("123456"); - newAccessControl.setTopic("test"); - newAccessControl.setCode(34); - newAccessControl.setNetaddress("127.0.0.1"); - newAccessControl.setRecognition("127.0.0.1:123"); - Assert.assertEquals(accessControl.toString(), newAccessControl.toString()); - } - - @Test - public void checkTest() { - accessControl.setCode(34); - AuthenticationResult authenticationResult = defaultAclService.check(accessControl); - Assert.assertTrue(authenticationResult.isSucceed()); - } - - @Test(expected=AclPlugRuntimeException.class) - public void checkAccessExceptionTest() { - accessControl.setCode(34); - accessControl.setAccount("Rocketmq"); - defaultAclService.check(accessControl); - } - - @Test(expected=AclPlugRuntimeException.class) - public void checkPasswordTest() { - accessControl.setCode(34); - accessControl.setPassword("123123123"); - defaultAclService.check(accessControl); - } - - @Test(expected=AclPlugRuntimeException.class) - public void checkCodeTest() { - accessControl.setCode(14434); - accessControl.setPassword("123123123"); - defaultAclService.check(accessControl); - } - - - @Test - public void validateTest() { - accessControl.setCode(34); - accessValidator.validate(accessControl); - } - - @Test(expected=AclPlugRuntimeException.class) - public void validateAccessExceptionTest() { - accessControl.setCode(34); - accessControl.setAccount("Rocketmq"); - accessValidator.validate(accessControl); - } - - @Test(expected=AclPlugRuntimeException.class) - public void validatePasswordTest() { - accessControl.setCode(34); - accessControl.setPassword("123123123"); - accessValidator.validate(accessControl); - } - - @Test(expected=AclPlugRuntimeException.class) - public void validateCodeTest() { - accessControl.setCode(14434); - accessControl.setPassword("123123123"); - accessValidator.validate(accessControl); - } + } + + + @Test + public void defaultConstructorTest() { + System.setProperty("rocketmq.home.dir", "src/test/resources"); + AclRemotingService defaultAclService = new DefaultAclRemotingServiceImpl(); + Assert.assertNotNull(defaultAclService); + } + + @Test + public void parseTest() { + RemotingCommand remotingCommand = RemotingCommand.createResponseCommand(34, ""); + HashMap map = new HashMap<>(); + map.put("account", "RocketMQ"); + map.put("password", "123456"); + map.put("topic", "test"); + remotingCommand.setExtFields(map); + + AccessResource accessResource = accessValidator.parse(remotingCommand, "127.0.0.1:123"); + AccessControl accessControl = (AccessControl) accessResource; + AccessControl newAccessControl = new AccessControl(); + newAccessControl.setAccount("RocketMQ"); + newAccessControl.setPassword("123456"); + newAccessControl.setTopic("test"); + newAccessControl.setCode(34); + newAccessControl.setNetaddress("127.0.0.1"); + newAccessControl.setRecognition("127.0.0.1:123"); + Assert.assertEquals(accessControl.toString(), newAccessControl.toString()); + } + + @Test + public void checkTest() { + accessControl.setCode(34); + AuthenticationResult authenticationResult = defaultAclService.check(accessControl); + Assert.assertTrue(authenticationResult.isSucceed()); + } + + @Test(expected = AclPlugRuntimeException.class) + public void checkAccessExceptionTest() { + accessControl.setCode(34); + accessControl.setAccount("Rocketmq"); + defaultAclService.check(accessControl); + } + + @Test(expected = AclPlugRuntimeException.class) + public void checkPasswordTest() { + accessControl.setCode(34); + accessControl.setPassword("123123123"); + defaultAclService.check(accessControl); + } + + @Test(expected = AclPlugRuntimeException.class) + public void checkCodeTest() { + accessControl.setCode(14434); + accessControl.setPassword("123123123"); + defaultAclService.check(accessControl); + } + + + @Test + public void validateTest() { + accessControl.setCode(34); + accessValidator.validate(accessControl); + } + + @Test(expected = AclPlugRuntimeException.class) + public void validateAccessExceptionTest() { + accessControl.setCode(34); + accessControl.setAccount("Rocketmq"); + accessValidator.validate(accessControl); + } + + @Test(expected = AclPlugRuntimeException.class) + public void validatePasswordTest() { + accessControl.setCode(34); + accessControl.setPassword("123123123"); + accessValidator.validate(accessControl); + } + + @Test(expected = AclPlugRuntimeException.class) + public void validateCodeTest() { + accessControl.setCode(14434); + accessControl.setPassword("123123123"); + accessValidator.validate(accessControl); + } } diff --git a/acl-plug/src/test/java/org/apache/rocketmq/acl/plug/AclUtilsTest.java b/acl-plug/src/test/java/org/apache/rocketmq/acl/plug/AclUtilsTest.java index 806d18089497b135026ef237df31982994fc8e53..b0cc4daba10b0307b5bf099689a3be79a710f510 100644 --- a/acl-plug/src/test/java/org/apache/rocketmq/acl/plug/AclUtilsTest.java +++ b/acl-plug/src/test/java/org/apache/rocketmq/acl/plug/AclUtilsTest.java @@ -18,13 +18,12 @@ package org.apache.rocketmq.acl.plug; import java.util.ArrayList; import java.util.List; + import org.apache.commons.lang3.StringUtils; import org.junit.Assert; import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.junit.MockitoJUnitRunner; -@RunWith(MockitoJUnitRunner.class) + public class AclUtilsTest { @Test diff --git a/acl-plug/src/test/java/org/apache/rocketmq/acl/plug/engine/PlainAclPlugEngineTest.java b/acl-plug/src/test/java/org/apache/rocketmq/acl/plug/engine/PlainAclPlugEngineTest.java index c925ef412dab6ed7d6310327002085a46d20d990..83004bc2c269f93ba774bbee184f625f2f54bbd6 100644 --- a/acl-plug/src/test/java/org/apache/rocketmq/acl/plug/engine/PlainAclPlugEngineTest.java +++ b/acl-plug/src/test/java/org/apache/rocketmq/acl/plug/engine/PlainAclPlugEngineTest.java @@ -57,46 +57,14 @@ public class PlainAclPlugEngineTest { @Before public void init() throws NoSuchFieldException, SecurityException, IOException { + System.setProperty("rocketmq.home.dir", "src/test/resources"); + ControllerParameters controllerParametersEntity = new ControllerParameters(); Yaml ymal = new Yaml(); - String home = System.getProperty(MixAll.ROCKETMQ_HOME_PROPERTY, System.getenv(MixAll.ROCKETMQ_HOME_ENV)); - InputStream fis = null; - if (home == null) { - URL url = PlainAclPlugEngineTest.class.getResource("/"); - home = url.toString(); - home = home.substring(0, home.length() - 1).replace("file:/", "").replace("target/test-classes", ""); - home = home + "src/test/resources"; - if (!new File(home + "/conf/transport.yml").exists()) { - home = "/home/travis/build/githublaohu/rocketmq/acl-plug/src/test/resources"; - } - } - String filePath = home + "/conf/transport.yml"; - try { - fis = new FileInputStream(new File(filePath)); - transport = ymal.loadAs(fis, BorkerAccessControlTransport.class); - }catch(Exception e) { - AccessControl accessControl = new BorkerAccessControl(); - accessControl.setAccount("onlyNetAddress"); - accessControl.setPassword("aliyun11"); - accessControl.setNetaddress("127.0.0.1"); - accessControl.setRecognition("127.0.0.1:1"); - - AccessControl accessControlTwo = new BorkerAccessControl(); - accessControlTwo.setAccount("listTransport"); - accessControlTwo.setPassword("aliyun1"); - accessControlTwo.setNetaddress("127.0.0.1"); - accessControlTwo.setRecognition("127.0.0.1:2"); - transport = new BorkerAccessControlTransport(); - transport.setOnlyNetAddress((BorkerAccessControl)accessControl); - - } - ControllerParameters controllerParametersEntity = new ControllerParameters(); - controllerParametersEntity.setFileHome(null); - try { - plainAclPlugEngine = new PlainAclPlugEngine(controllerParametersEntity); - plainAclPlugEngine.initialize(); - } catch (Exception e) { + transport = ymal.loadAs(new FileInputStream(new File(controllerParametersEntity.getFileHome()+"/conf/transport.yml")), BorkerAccessControlTransport.class); + + plainAclPlugEngine = new PlainAclPlugEngine(controllerParametersEntity); + plainAclPlugEngine.initialize(); - } accessControl = new BorkerAccessControl(); accessControl.setAccount("rokcetmq"); @@ -142,6 +110,7 @@ public class PlainAclPlugEngineTest { @Test(expected = AclPlugRuntimeException.class) public void testPlainAclPlugEngineInit() { ControllerParameters controllerParametersEntity = new ControllerParameters(); + controllerParametersEntity.setFileHome(""); new PlainAclPlugEngine(controllerParametersEntity).initialize(); } diff --git a/broker/pom.xml b/broker/pom.xml index c353eb32b830cbc7be701d52537462f370ea8a33..f617d2492d11c22612a535bd3f9abcd9d744c313 100644 --- a/broker/pom.xml +++ b/broker/pom.xml @@ -50,7 +50,7 @@ ${project.groupId} - rocketmq-acl-plug + rocketmq-acl ch.qos.logback diff --git a/broker/src/main/java/org/apache/rocketmq/broker/BrokerController.java b/broker/src/main/java/org/apache/rocketmq/broker/BrokerController.java index d06949ca1f25b61d0e398b6d946ba0d2526f62e9..a6da44b641dcb57ffff36544c5218f4bbd5daf92 100644 --- a/broker/src/main/java/org/apache/rocketmq/broker/BrokerController.java +++ b/broker/src/main/java/org/apache/rocketmq/broker/BrokerController.java @@ -32,7 +32,6 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import org.apache.rocketmq.acl.AccessValidator; -import org.apache.rocketmq.acl.plug.AclPlugController; import org.apache.rocketmq.broker.client.ClientHousekeepingService; import org.apache.rocketmq.broker.client.ConsumerIdsChangeListener; import org.apache.rocketmq.broker.client.ConsumerManager; diff --git a/pom.xml b/pom.xml index 38e518da28b09f781b522039b0a74a588d98707c..aa8ed0e3d69f697629444fb7e299d3ca7a1895ad 100644 --- a/pom.xml +++ b/pom.xml @@ -525,7 +525,7 @@ ${project.groupId} - rocketmq-acl-plug + rocketmq-acl ${project.version}