Fixed literal string comparison.

This line is in the form of
String str = ...
str.equals("someOtherString");
//or
str.compareTo("someOtherString");

A NullPointerException may occur if the String variable str is null. If instead the code was restructured to
String str = ...
"someOtherString".equals(str);
//or
"someOtherString".compareTo(str);
that is, call equals() or compareTo() on the string literal, passing the variable as an argument, this exception could never happen as both equals() and compareTo() check for null.
revert-70aa11f8
Timo Briddigkeit 8 years ago
parent 0ac4752b2b
commit ed07774552

@ -22,13 +22,13 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
import org.wso2.carbon.apimgt.application.extension.APIManagementProviderService; import org.wso2.carbon.apimgt.application.extension.APIManagementProviderService;
import org.wso2.carbon.apimgt.application.extension.api.util.APIUtil;
import org.wso2.carbon.apimgt.application.extension.api.util.RegistrationProfile; import org.wso2.carbon.apimgt.application.extension.api.util.RegistrationProfile;
import org.wso2.carbon.apimgt.application.extension.constants.ApiApplicationConstants; import org.wso2.carbon.apimgt.application.extension.constants.ApiApplicationConstants;
import org.wso2.carbon.apimgt.application.extension.dto.ApiApplicationKey; import org.wso2.carbon.apimgt.application.extension.dto.ApiApplicationKey;
import org.wso2.carbon.apimgt.application.extension.exception.APIManagerException; import org.wso2.carbon.apimgt.application.extension.exception.APIManagerException;
import org.wso2.carbon.base.MultitenantConstants; import org.wso2.carbon.base.MultitenantConstants;
import org.wso2.carbon.context.PrivilegedCarbonContext; import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.apimgt.application.extension.api.util.APIUtil;
import org.wso2.carbon.user.api.UserStoreException; import org.wso2.carbon.user.api.UserStoreException;
import javax.ws.rs.DELETE; import javax.ws.rs.DELETE;
@ -46,7 +46,7 @@ public class ApiApplicationRegistrationServiceImpl implements ApiApplicationRegi
public Response register(@QueryParam("tenantDomain") String tenantDomain, public Response register(@QueryParam("tenantDomain") String tenantDomain,
@QueryParam("applicationName") String applicationName) { @QueryParam("applicationName") String applicationName) {
String authenticatedTenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain(); String authenticatedTenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
if (!authenticatedTenantDomain.equals(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME)) { if (!MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equals(authenticatedTenantDomain)) {
return Response.status(Response.Status.NOT_ACCEPTABLE).build(); return Response.status(Response.Status.NOT_ACCEPTABLE).build();
} }
try { try {

@ -23,12 +23,7 @@ import org.apache.commons.logging.LogFactory;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
import org.wso2.carbon.apimgt.api.APIConsumer; import org.wso2.carbon.apimgt.api.APIConsumer;
import org.wso2.carbon.apimgt.api.APIManagementException; import org.wso2.carbon.apimgt.api.APIManagementException;
import org.wso2.carbon.apimgt.api.model.API; import org.wso2.carbon.apimgt.api.model.*;
import org.wso2.carbon.apimgt.api.model.APIIdentifier;
import org.wso2.carbon.apimgt.api.model.APIKey;
import org.wso2.carbon.apimgt.api.model.Application;
import org.wso2.carbon.apimgt.api.model.SubscribedAPI;
import org.wso2.carbon.apimgt.api.model.Subscriber;
import org.wso2.carbon.apimgt.application.extension.constants.ApiApplicationConstants; import org.wso2.carbon.apimgt.application.extension.constants.ApiApplicationConstants;
import org.wso2.carbon.apimgt.application.extension.dto.ApiApplicationKey; import org.wso2.carbon.apimgt.application.extension.dto.ApiApplicationKey;
import org.wso2.carbon.apimgt.application.extension.exception.APIManagerException; import org.wso2.carbon.apimgt.application.extension.exception.APIManagerException;
@ -415,7 +410,7 @@ public class APIManagementProviderServiceImpl implements APIManagementProviderSe
int applicationId = createApplication(apiConsumer, apiApplicationName, username, groupId); int applicationId = createApplication(apiConsumer, apiApplicationName, username, groupId);
String tenantDomain = MultitenantUtils.getTenantDomain(username); String tenantDomain = MultitenantUtils.getTenantDomain(username);
Set<API> userVisibleAPIs = apiConsumer.getAllPublishedAPIs(tenantDomain); Set<API> userVisibleAPIs = apiConsumer.getAllPublishedAPIs(tenantDomain);
if (!tenantDomain.equals(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME)) { if (!MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equals(tenantDomain)) {
userVisibleAPIs.addAll(apiConsumer.getAllPublishedAPIs(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME)); userVisibleAPIs.addAll(apiConsumer.getAllPublishedAPIs(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME));
} }
Subscriber subscriber = apiConsumer.getSubscriber(username); Subscriber subscriber = apiConsumer.getSubscriber(username);
@ -443,7 +438,7 @@ public class APIManagementProviderServiceImpl implements APIManagementProviderSe
try { try {
APIConsumer apiConsumer = APIManagerFactory.getInstance().getAPIConsumer(username); APIConsumer apiConsumer = APIManagerFactory.getInstance().getAPIConsumer(username);
loginInfoJsonObj.put("user", username); loginInfoJsonObj.put("user", username);
if (tenantDomain.equals(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME)) { if (MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equals(tenantDomain)) {
loginInfoJsonObj.put("isSuperTenant", true); loginInfoJsonObj.put("isSuperTenant", true);
} else { } else {
loginInfoJsonObj.put("isSuperTenant", false); loginInfoJsonObj.put("isSuperTenant", false);

@ -37,7 +37,7 @@ public final class APIManagerUtil {
*/ */
public static int getTenantId(String tenantDomain) throws APIManagerException { public static int getTenantId(String tenantDomain) throws APIManagerException {
try { try {
if (tenantDomain.equals(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME)) { if (MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equals(tenantDomain)) {
return MultitenantConstants.SUPER_TENANT_ID; return MultitenantConstants.SUPER_TENANT_ID;
} }
TenantManager tenantManager = APIApplicationManagerExtensionDataHolder.getInstance().getTenantManager(); TenantManager tenantManager = APIApplicationManagerExtensionDataHolder.getInstance().getTenantManager();

@ -36,10 +36,10 @@ import java.util.*;
public class APIPublisherUtil { public class APIPublisherUtil {
private static final Log log = LogFactory.getLog(APIPublisherUtil.class);
private static final String DEFAULT_API_VERSION = "1.0.0";
public static final String API_VERSION_PARAM = "{version}"; public static final String API_VERSION_PARAM = "{version}";
public static final String API_PUBLISH_ENVIRONMENT = "Production and Sandbox"; public static final String API_PUBLISH_ENVIRONMENT = "Production and Sandbox";
private static final Log log = LogFactory.getLog(APIPublisherUtil.class);
private static final String DEFAULT_API_VERSION = "1.0.0";
private static final String API_CONFIG_DEFAULT_VERSION = "1.0.0"; private static final String API_CONFIG_DEFAULT_VERSION = "1.0.0";
private static final String PARAM_MANAGED_API_ENDPOINT = "managed-api-endpoint"; private static final String PARAM_MANAGED_API_ENDPOINT = "managed-api-endpoint";
private static final String PARAM_MANAGED_API_OWNER = "managed-api-owner"; private static final String PARAM_MANAGED_API_OWNER = "managed-api-owner";
@ -242,7 +242,7 @@ public class APIPublisherUtil {
MultitenantConstants.SUPER_TENANT_DOMAIN_NAME; MultitenantConstants.SUPER_TENANT_DOMAIN_NAME;
apiConfig.setTenantDomain(tenantDomain); apiConfig.setTenantDomain(tenantDomain);
String contextTemplate = context + "/" + APIConstants.VERSION_PLACEHOLDER; String contextTemplate = context + "/" + APIConstants.VERSION_PLACEHOLDER;
if (!tenantDomain.equals(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME)) { if (!MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equals(tenantDomain)) {
contextTemplate = context + "/t/" + tenantDomain + "/" + APIConstants.VERSION_PLACEHOLDER; contextTemplate = context + "/t/" + tenantDomain + "/" + APIConstants.VERSION_PLACEHOLDER;
} }
apiConfig.setContextTemplate(contextTemplate); apiConfig.setContextTemplate(contextTemplate);

@ -63,11 +63,10 @@ public class AnnotationProcessor {
private static final String HTTP_PORT = "httpPort"; private static final String HTTP_PORT = "httpPort";
private static final String STRING_ARR = "string_arr"; private static final String STRING_ARR = "string_arr";
private static final String STRING = "string"; private static final String STRING = "string";
Class<API> apiClazz;
private StandardContext context; private StandardContext context;
private Method[] pathClazzMethods; private Method[] pathClazzMethods;
private Class<Path> pathClazz; private Class<Path> pathClazz;
Class<API> apiClazz;
private ClassLoader classLoader; private ClassLoader classLoader;
private ServletContext servletContext; private ServletContext servletContext;
@ -319,7 +318,7 @@ public class AnnotationProcessor {
* @return * @return
*/ */
private String makeContextURLReady(String context) { private String makeContextURLReady(String context) {
if (context != null && !context.equalsIgnoreCase("")) { if (context != null && context.length() > 0) {
if (context.startsWith("/")) { if (context.startsWith("/")) {
return context; return context;
} else { } else {

@ -60,6 +60,10 @@ public class DeviceDataPublisher {
private static Map<String, DataPublisher> dataPublisherMap; private static Map<String, DataPublisher> dataPublisherMap;
private static DeviceDataPublisher deviceDataPublisher; private static DeviceDataPublisher deviceDataPublisher;
public DeviceDataPublisher() {
dataPublisherMap = new ConcurrentHashMap<>();
}
public static DeviceDataPublisher getInstance() { public static DeviceDataPublisher getInstance() {
if (deviceDataPublisher == null) { if (deviceDataPublisher == null) {
synchronized (DeviceDataPublisher.class) { synchronized (DeviceDataPublisher.class) {
@ -71,10 +75,6 @@ public class DeviceDataPublisher {
return deviceDataPublisher; return deviceDataPublisher;
} }
public DeviceDataPublisher() {
dataPublisherMap = new ConcurrentHashMap<>();
}
/** /**
* this return the data publisher for the tenant. * this return the data publisher for the tenant.
* *
@ -95,7 +95,7 @@ public class DeviceDataPublisher {
String analyticsServerUrlGroups = analyticsConfig.getReceiverServerUrl(); String analyticsServerUrlGroups = analyticsConfig.getReceiverServerUrl();
String analyticsServerUsername = analyticsConfig.getAdminUsername(); String analyticsServerUsername = analyticsConfig.getAdminUsername();
String analyticsServerPassword = analyticsConfig.getAdminPassword(); String analyticsServerPassword = analyticsConfig.getAdminPassword();
if (!tenantDomain.equals(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME)) { if (!MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equals(tenantDomain)) {
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId(); int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
String userInfo[] = getAnalyticsServerUserInfo(tenantId); String userInfo[] = getAnalyticsServerUserInfo(tenantId);
if (userInfo != null) { if (userInfo != null) {

@ -125,11 +125,11 @@ public class RoleManagementServiceImpl implements RoleManagementService {
UIPermissionNode[] deviceMgtPermissions = new UIPermissionNode[2]; UIPermissionNode[] deviceMgtPermissions = new UIPermissionNode[2];
for (UIPermissionNode permissionNode : rolePermissions.getNodeList()) { for (UIPermissionNode permissionNode : rolePermissions.getNodeList()) {
if (permissionNode.getResourcePath().equals("/permission/admin")) { if ("/permission/admin".equals(permissionNode.getResourcePath())) {
for (UIPermissionNode node : permissionNode.getNodeList()) { for (UIPermissionNode node : permissionNode.getNodeList()) {
if (node.getResourcePath().equals("/permission/admin/device-mgt")) { if ("/permission/admin/device-mgt".equals(node.getResourcePath())) {
deviceMgtPermissions[0] = node; deviceMgtPermissions[0] = node;
} else if (node.getResourcePath().equals("/permission/admin/login")) { } else if ("/permission/admin/login".equals(node.getResourcePath())) {
deviceMgtPermissions[1] = node; deviceMgtPermissions[1] = node;
} }
} }

@ -47,8 +47,7 @@ public class QueryBuilderImpl implements QueryBuilder {
Condition locCondition = new Condition(); Condition locCondition = new Condition();
if (conditions.size() == 1) { if (conditions.size() == 1) {
if (Constants.LOCATION.equalsIgnoreCase(conditions.get(0).getKey())) {
if (conditions.get(0).getKey().equalsIgnoreCase(Constants.LOCATION)) {
locCondition = conditions.get(0); locCondition = conditions.get(0);
} else if (Utils.checkDeviceDetailsColumns(conditions.get(0).getKey()) || } else if (Utils.checkDeviceDetailsColumns(conditions.get(0).getKey()) ||
Utils.checkDeviceLocationColumns(conditions.get(0).getKey())) { Utils.checkDeviceLocationColumns(conditions.get(0).getKey())) {
@ -58,7 +57,7 @@ public class QueryBuilderImpl implements QueryBuilder {
} }
} else { } else {
for (Condition con : conditions) { for (Condition con : conditions) {
if (con.getKey().equalsIgnoreCase(Constants.LOCATION)) { if (Constants.LOCATION.equalsIgnoreCase(con.getKey())) {
locCondition = con; locCondition = con;
} else if (Utils.checkDeviceDetailsColumns(con.getKey()) || } else if (Utils.checkDeviceDetailsColumns(con.getKey()) ||
Utils.checkDeviceLocationColumns(con.getKey())) { Utils.checkDeviceLocationColumns(con.getKey())) {

@ -227,7 +227,7 @@ public final class DeviceManagerUtil {
*/ */
public static int getTenantId(String tenantDomain) throws DeviceManagementException { public static int getTenantId(String tenantDomain) throws DeviceManagementException {
try { try {
if (tenantDomain.equals(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME)) { if (MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equals(tenantDomain)) {
return MultitenantConstants.SUPER_TENANT_ID; return MultitenantConstants.SUPER_TENANT_ID;
} }
TenantManager tenantManager = DeviceManagementDataHolder.getInstance().getTenantManager(); TenantManager tenantManager = DeviceManagementDataHolder.getInstance().getTenantManager();

@ -67,25 +67,25 @@ public class FeatureFilterImpl implements FeatureFilter {
for (FeatureRules rule : featureRulesList) { for (FeatureRules rule : featureRulesList) {
String ruleName = rule.getEvaluationCriteria(); String ruleName = rule.getEvaluationCriteria();
String featureName = rule.getName(); String featureName = rule.getName();
if (ruleName.equalsIgnoreCase(Constants.DENY_OVERRIDES)) { if (Constants.DENY_OVERRIDES.equalsIgnoreCase(ruleName)) {
getDenyOverridesFeatures(featureName, featureList, effectiveFeatureList); getDenyOverridesFeatures(featureName, featureList, effectiveFeatureList);
} }
if (ruleName.equalsIgnoreCase(Constants.PERMIT_OVERRIDES)) { if (Constants.PERMIT_OVERRIDES.equalsIgnoreCase(ruleName)) {
getPermitOverridesFeatures(featureName, featureList, effectiveFeatureList); getPermitOverridesFeatures(featureName, featureList, effectiveFeatureList);
} }
if (ruleName.equalsIgnoreCase(Constants.FIRST_APPLICABLE)) { if (Constants.FIRST_APPLICABLE.equalsIgnoreCase(ruleName)) {
getFirstApplicableFeatures(featureName, featureList, effectiveFeatureList); getFirstApplicableFeatures(featureName, featureList, effectiveFeatureList);
} }
if (ruleName.equalsIgnoreCase(Constants.LAST_APPLICABLE)) { if (Constants.LAST_APPLICABLE.equalsIgnoreCase(ruleName)) {
getLastApplicableFeatures(featureName, featureList, effectiveFeatureList); getLastApplicableFeatures(featureName, featureList, effectiveFeatureList);
} }
if (ruleName.equalsIgnoreCase(Constants.ALL_APPLICABLE)) { if (Constants.ALL_APPLICABLE.equalsIgnoreCase(ruleName)) {
getAllApplicableFeatures(featureName, featureList, effectiveFeatureList); getAllApplicableFeatures(featureName, featureList, effectiveFeatureList);
} }
if (ruleName.equalsIgnoreCase(Constants.HIGHEST_APPLICABLE)) { if (Constants.HIGHEST_APPLICABLE.equalsIgnoreCase(ruleName)) {
getHighestApplicableFeatures(featureName, featureList, effectiveFeatureList); getHighestApplicableFeatures(featureName, featureList, effectiveFeatureList);
} }
if (ruleName.equalsIgnoreCase(Constants.LOWEST_APPLICABLE)) { if (Constants.LOWEST_APPLICABLE.equalsIgnoreCase(ruleName)) {
getLowestApplicableFeatures(featureName, featureList, effectiveFeatureList); getLowestApplicableFeatures(featureName, featureList, effectiveFeatureList);
} }
} }

@ -253,7 +253,7 @@ public class ComplianceDecisionPointImpl implements ComplianceDecisionPoint {
Policy policy = complianceData.getPolicy(); Policy policy = complianceData.getPolicy();
String compliance = this.getNoneComplianceRule(policy); String compliance = this.getNoneComplianceRule(policy);
if (compliance.equals("")) { if ("".equals(compliance)) {
String msg = "Compliance rule is empty for the policy " + policy.getPolicyName() + ". Therefore " + String msg = "Compliance rule is empty for the policy " + policy.getPolicyName() + ". Therefore " +
"Monitoring Engine cannot run."; "Monitoring Engine cannot run.";
throw new PolicyComplianceException(msg); throw new PolicyComplianceException(msg);

@ -203,7 +203,7 @@ public class PolicyManagerUtil {
if (configuration != null && !configuration.isEmpty()) { if (configuration != null && !configuration.isEmpty()) {
for (ConfigurationEntry cEntry : configuration) { for (ConfigurationEntry cEntry : configuration) {
if (cEntry.getName().equalsIgnoreCase(MONITORING_FREQUENCY)) { if (MONITORING_FREQUENCY.equalsIgnoreCase(cEntry.getName())) {
if (cEntry.getValue() == null) { if (cEntry.getValue() == null) {
throw new PolicyManagementException("Invalid value, i.e. '" + cEntry.getValue() + throw new PolicyManagementException("Invalid value, i.e. '" + cEntry.getValue() +
"', is configured as the monitoring frequency"); "', is configured as the monitoring frequency");

@ -105,7 +105,7 @@ public class WebappAuthenticationValve extends CarbonTomcatValve {
ctx = tokenizer.nextToken(); ctx = tokenizer.nextToken();
} }
} }
return (ctx.equalsIgnoreCase("carbon") || ctx.equalsIgnoreCase("services")); return ("carbon".equalsIgnoreCase(ctx) || "services".equalsIgnoreCase(ctx));
} }
private boolean isNonSecuredEndPoint(Request request) { private boolean isNonSecuredEndPoint(Request request) {
@ -132,10 +132,7 @@ public class WebappAuthenticationValve extends CarbonTomcatValve {
} }
} }
} }
if (nonSecuredEndpoints.containsKey(uri)) { return nonSecuredEndpoints.containsKey(uri);
return true;
}
return false;
} }
private void processRequest(Request request, Response response, CompositeValve compositeValve, private void processRequest(Request request, Response response, CompositeValve compositeValve,

@ -65,6 +65,13 @@ public class JWTAuthenticator implements WebappAuthenticator {
private static final Map<String, PublicKey> publicKeyHolder = new HashMap<>(); private static final Map<String, PublicKey> publicKeyHolder = new HashMap<>();
private Properties properties; private Properties properties;
private static void loadTenantRegistry(int tenantId) throws RegistryException {
TenantRegistryLoader tenantRegistryLoader = AuthenticatorFrameworkDataHolder.getInstance().
getTenantRegistryLoader();
AuthenticatorFrameworkDataHolder.getInstance().getTenantIndexingLoader().loadTenantIndex(tenantId);
tenantRegistryLoader.loadTenantRegistry(tenantId);
}
@Override @Override
public void init() { public void init() {
@ -73,10 +80,7 @@ public class JWTAuthenticator implements WebappAuthenticator {
@Override @Override
public boolean canHandle(Request request) { public boolean canHandle(Request request) {
String authorizationHeader = request.getHeader(JWTAuthenticator.JWT_ASSERTION_HEADER); String authorizationHeader = request.getHeader(JWTAuthenticator.JWT_ASSERTION_HEADER);
if ((authorizationHeader != null) && !authorizationHeader.isEmpty()) { return (authorizationHeader != null) && !authorizationHeader.isEmpty();
return true;
}
return false;
} }
@Override @Override
@ -106,7 +110,7 @@ public class JWTAuthenticator implements WebappAuthenticator {
if (publicKey == null) { if (publicKey == null) {
loadTenantRegistry(tenantId); loadTenantRegistry(tenantId);
KeyStoreManager keyStoreManager = KeyStoreManager.getInstance(tenantId); KeyStoreManager keyStoreManager = KeyStoreManager.getInstance(tenantId);
if (tenantDomain.equals(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME)) { if (MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equals(tenantDomain)) {
String defaultPublicKey = properties.getProperty("DefaultPublicKey"); String defaultPublicKey = properties.getProperty("DefaultPublicKey");
if (defaultPublicKey != null && !defaultPublicKey.isEmpty()) { if (defaultPublicKey != null && !defaultPublicKey.isEmpty()) {
boolean isDefaultPublicKey = Boolean.parseBoolean(defaultPublicKey); boolean isDefaultPublicKey = Boolean.parseBoolean(defaultPublicKey);
@ -182,13 +186,13 @@ public class JWTAuthenticator implements WebappAuthenticator {
} }
@Override @Override
public void setProperties(Properties properties) { public Properties getProperties() {
this.properties = properties; return properties;
} }
@Override @Override
public Properties getProperties() { public void setProperties(Properties properties) {
return properties; this.properties = properties;
} }
@Override @Override
@ -198,11 +202,4 @@ public class JWTAuthenticator implements WebappAuthenticator {
} }
return this.properties.getProperty(name); return this.properties.getProperty(name);
} }
private static void loadTenantRegistry(int tenantId) throws RegistryException {
TenantRegistryLoader tenantRegistryLoader = AuthenticatorFrameworkDataHolder.getInstance().
getTenantRegistryLoader();
AuthenticatorFrameworkDataHolder.getInstance().getTenantIndexingLoader().loadTenantIndex(tenantId);
tenantRegistryLoader.loadTenantRegistry(tenantId);
}
} }

Loading…
Cancel
Save