[java-opensaml COMMIT] in /trunk/opensaml-util/src: main/java/org/opensaml/util/net/IPRange.java test/java/org/opensa...
noreply at shibboleth.net
noreply at shibboleth.net
Mon Sep 19 21:22:58 BST 2011
Author: iay
Date: Mon Sep 19 21:22:58 2011
New Revision: 2892
URL: http://svn.shibboleth.net/view/java-opensaml?rev=2892&view=rev
Log:
Permit compressed IPv6 addresses.
Modified:
trunk/opensaml-util/src/main/java/org/opensaml/util/net/IPRange.java
trunk/opensaml-util/src/test/java/org/opensaml/util/net/IPRangeTest.java
Modified: trunk/opensaml-util/src/main/java/org/opensaml/util/net/IPRange.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-util/src/main/java/org/opensaml/util/net/IPRange.java?rev=2892&r1=2891&r2=2892&view=diff
==============================================================================
--- trunk/opensaml-util/src/main/java/org/opensaml/util/net/IPRange.java (original)
+++ trunk/opensaml-util/src/main/java/org/opensaml/util/net/IPRange.java Mon Sep 19 21:22:58 2011
@@ -85,19 +85,21 @@
/**
* Validate an IPv6 address for use as the base of a CIDR block.
*
+ * Just check that any non-empty components are valid hexadecimal integers
+ * in the right range; leave most of the hard work to the {@link InetAddress} parser.
+ *
* Throws IllegalArgumentException if validation fails.
*
* @param address the address to validate
*/
private static void validateV6Address(final String address) {
String[] components = address.split(":");
- if (components.length != 8) {
- throw new IllegalArgumentException("IPv6 address should have eight components");
- }
for (String component : components) {
- int value = Integer.parseInt(component, 16);
- if (value < 0 || (value > 0xFFFF)) {
- throw new IllegalArgumentException("IPv6 component range error: " + component);
+ if (component.length() != 0) {
+ int value = Integer.parseInt(component, 16);
+ if (value < 0 || (value > 0xFFFF)) {
+ throw new IllegalArgumentException("IPv6 component range error: " + component);
+ }
}
}
}
Modified: trunk/opensaml-util/src/test/java/org/opensaml/util/net/IPRangeTest.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-util/src/test/java/org/opensaml/util/net/IPRangeTest.java?rev=2892&r1=2891&r2=2892&view=diff
==============================================================================
--- trunk/opensaml-util/src/test/java/org/opensaml/util/net/IPRangeTest.java (original)
+++ trunk/opensaml-util/src/test/java/org/opensaml/util/net/IPRangeTest.java Mon Sep 19 21:22:58 2011
@@ -26,6 +26,9 @@
public void validV6Addresses() {
IPRange.parseCIDRBlock("0:0:0:0:0:0:0:0/128");
IPRange.parseCIDRBlock("1234:5678:90ab:cdef:FfFf:AaAa:BBBB:CCCC/128");
+ IPRange.parseCIDRBlock("1234:5678::BBBB:CCCC/128");
+ IPRange.parseCIDRBlock("2001:630:200::/48");
+ IPRange.parseCIDRBlock("::0BAD:7/128");
}
@Test
@@ -45,6 +48,7 @@
public void invalidV6Addresses() {
testInvalid("0:0/128");
testInvalid("1:2:3:4:5:6:7/128");
+ testInvalid("::0BAD::7/128");
}
}
More information about the commits
mailing list