You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2008/04/04 23:06:07 UTC
svn commit: r644929 -
/openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceAccessController.java
Author: dblevins
Date: Fri Apr 4 14:06:06 2008
New Revision: 644929
URL: http://svn.apache.org/viewvc?rev=644929&view=rev
Log:
Merging r644704 - http://svn.apache.org/viewvc?rev=644704&view=rev
svn merge -r 644703:644704 https://svn.apache.org/repos/asf/openejb/trunk/openejb3 .
------------------------------------------------------------------------
r644704 | jlaskowski | 2008-04-04 06:02:40 -0700 (Fri, 04 Apr 2008) | 1 line
Fix for java.lang.IllegalArgumentException: Mask localhost is not supported. where localhost is in only_from
------------------------------------------------------------------------
Modified:
openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceAccessController.java
Modified: openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceAccessController.java
URL: http://svn.apache.org/viewvc/openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceAccessController.java?rev=644929&r1=644928&r2=644929&view=diff
==============================================================================
--- openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceAccessController.java (original)
+++ openejb/branches/openejb-3.0/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceAccessController.java Fri Apr 4 14:06:06 2008
@@ -81,28 +81,40 @@
if (ipString == null) {
permissions.add(new PermitAllPermission());
} else {
- try {
- InetAddress[] localIps = InetAddress.getAllByName("localhost");
- for (int i = 0; i < localIps.length; i++) {
- if (localIps[i] instanceof Inet4Address) {
- permissions.add(new ExactIPAddressPermission(localIps[i].getAddress()));
- } else {
- permissions.add(new ExactIPv6AddressPermission(localIps[i].getAddress()));
- }
- }
- } catch (UnknownHostException e) {
- throw new ServiceException("Could not get localhost inet address", e);
- }
+ String hostname = "localhost";
+ addIPAddressPermissions(permissions, hostname);
StringTokenizer st = new StringTokenizer(ipString, " ");
while (st.hasMoreTokens()) {
String mask = st.nextToken();
- permissions.add(IPAddressPermissionFactory.getIPAddressMask(mask));
+ try {
+ permissions.add(IPAddressPermissionFactory.getIPAddressMask(mask));
+ } catch (IllegalArgumentException iae) {
+ // it could be that it is a hostname not ip address
+ addIPAddressPermissions(permissions, mask);
+ }
}
}
hostPermissions = (IPAddressPermission[]) permissions.toArray(new IPAddressPermission[permissions.size()]);
}
+
+ private void addIPAddressPermissions(
+ LinkedList<IPAddressPermission> permissions, String hostname)
+ throws ServiceException {
+ try {
+ InetAddress[] localIps = InetAddress.getAllByName(hostname);
+ for (int i = 0; i < localIps.length; i++) {
+ if (localIps[i] instanceof Inet4Address) {
+ permissions.add(new ExactIPAddressPermission(localIps[i].getAddress()));
+ } else {
+ permissions.add(new ExactIPv6AddressPermission(localIps[i].getAddress()));
+ }
+ }
+ } catch (UnknownHostException e) {
+ throw new ServiceException("Could not get " + hostname + " inet address", e);
+ }
+ }
public void init(Properties props) throws Exception {
parseAdminIPs(props);