use of org.apache.qpid.server.security.access.firewall.HostnameFirewallRule in project qpid-broker-j by apache.
the class HostnameFirewallRuleTest method testSingleHostname.
public void testSingleHostname() throws Exception {
String hostnameInRule = "hostnameInRule";
InetAddress addressWithMatchingHostname = mock(InetAddress.class);
when(addressWithMatchingHostname.getCanonicalHostName()).thenReturn(hostnameInRule);
_HostnameFirewallRule = new HostnameFirewallRule(hostnameInRule);
assertFalse(_HostnameFirewallRule.matches(_addressNotInRule));
assertTrue(_HostnameFirewallRule.matches(addressWithMatchingHostname));
}
use of org.apache.qpid.server.security.access.firewall.HostnameFirewallRule in project qpid-broker-j by apache.
the class HostnameFirewallRuleTest method testEqualsAndHashCode.
public void testEqualsAndHashCode() {
String hostname1 = "hostname1";
String hostname2 = "hostname2";
HostnameFirewallRule rule = new HostnameFirewallRule(hostname1, hostname2);
HostnameFirewallRule equalRule = new HostnameFirewallRule(hostname1, hostname2);
assertTrue(rule.equals(rule));
assertTrue(rule.equals(equalRule));
assertTrue(equalRule.equals(rule));
assertTrue(rule.hashCode() == equalRule.hashCode());
assertFalse("Different hostnames should cause rules to be unequal", rule.equals(new HostnameFirewallRule(hostname1, "different-hostname")));
}
use of org.apache.qpid.server.security.access.firewall.HostnameFirewallRule in project qpid-broker-j by apache.
the class HostnameFirewallRuleTest method testSingleHostnameWildcard.
public void testSingleHostnameWildcard() throws Exception {
String hostnameInRule = ".*FOO.*";
InetAddress addressWithMatchingHostname = mock(InetAddress.class);
when(addressWithMatchingHostname.getCanonicalHostName()).thenReturn("xxFOOxx");
_HostnameFirewallRule = new HostnameFirewallRule(hostnameInRule);
assertFalse(_HostnameFirewallRule.matches(_addressNotInRule));
assertTrue(_HostnameFirewallRule.matches(addressWithMatchingHostname));
}
use of org.apache.qpid.server.security.access.firewall.HostnameFirewallRule in project qpid-broker-j by apache.
the class MessagingACLTest method configureACL.
private void configureACL(String... rules) throws Exception {
EventLoggerProvider eventLoggerProvider = mock(EventLoggerProvider.class);
EventLogger eventLogger = mock(EventLogger.class);
when(eventLoggerProvider.getEventLogger()).thenReturn(eventLogger);
List<AclRule> aclRules = new ArrayList<>();
try (StringReader stringReader = new StringReader(Arrays.stream(rules).collect(Collectors.joining(LINE_SEPARATOR)))) {
RuleSet ruleSet = AclFileParser.parse(stringReader, eventLoggerProvider);
final List<Rule> parsedRules = ruleSet.getAllRules();
for (final Rule rule : parsedRules) {
aclRules.add(new AclRule() {
@Override
public String getIdentity() {
return rule.getIdentity();
}
@Override
public ObjectType getObjectType() {
return rule.getAction().getObjectType();
}
@Override
public LegacyOperation getOperation() {
return rule.getAction().getOperation();
}
@Override
public Map<ObjectProperties.Property, String> getAttributes() {
Map<ObjectProperties.Property, String> attributes = new HashMap<>(rule.getAction().getProperties().asPropertyMap());
FirewallRule firewallRule = rule.getAclAction().getFirewallRule();
if (firewallRule != null) {
if (firewallRule instanceof HostnameFirewallRule) {
attributes.put(ObjectProperties.Property.FROM_HOSTNAME, "127.0.0.1");
} else if (firewallRule instanceof NetworkFirewallRule) {
// tests use only 127.0.0.1 at the moment
attributes.put(ObjectProperties.Property.FROM_NETWORK, "127.0.0.1");
}
}
return attributes;
}
@Override
public RuleOutcome getOutcome() {
return rule.getRuleOutcome();
}
});
}
}
configureACL(aclRules.toArray(new AclRule[aclRules.size()]));
}
use of org.apache.qpid.server.security.access.firewall.HostnameFirewallRule in project qpid-broker-j by apache.
the class HostnameFirewallRuleTest method testMultipleHostnames.
public void testMultipleHostnames() throws Exception {
String[] hostnamesInRule = new String[] { "hostnameInRule1", "hostnameInRule2" };
_HostnameFirewallRule = new HostnameFirewallRule(hostnamesInRule);
assertFalse(_HostnameFirewallRule.matches(_addressNotInRule));
for (String hostnameInRule : hostnamesInRule) {
InetAddress addressWithMatchingHostname = mock(InetAddress.class);
when(addressWithMatchingHostname.getCanonicalHostName()).thenReturn(hostnameInRule);
assertTrue(_HostnameFirewallRule.matches(addressWithMatchingHostname));
}
}
Aggregations