Author: dblevins
Date: Tue Jul 13 19:26:54 2010
New Revision: 963827
URL: http://svn.apache.org/viewvc?rev=963827&view=rev
Log:
Moved old test case from 2.x branch
Added:
openejb/trunk/openejb3/server/openejb-server/src/test/java/org/apache/openejb/server/
openejb/trunk/openejb3/server/openejb-server/src/test/java/org/apache/openejb/server/ServiceAccessControllerTest.java
(with props)
Added:
openejb/trunk/openejb3/server/openejb-server/src/test/java/org/apache/openejb/server/ServiceAccessControllerTest.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-server/src/test/java/org/apache/openejb/server/ServiceAccessControllerTest.java?rev=963827&view=auto
==============================================================================
---
openejb/trunk/openejb3/server/openejb-server/src/test/java/org/apache/openejb/server/ServiceAccessControllerTest.java
(added)
+++
openejb/trunk/openejb3/server/openejb-server/src/test/java/org/apache/openejb/server/ServiceAccessControllerTest.java
Tue Jul 13 19:26:54 2010
@@ -0,0 +1,204 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.server;
+
+
+import junit.framework.TestCase;
+import org.apache.openejb.server.ServerService;
+import org.apache.openejb.server.ServiceAccessController;
+import org.apache.openejb.server.ServiceException;
+import org.apache.openejb.server.auth.IPAddressPermission;
+import org.apache.openejb.server.auth.IPAddressPermissionFactory;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.InetAddress;
+import java.net.Socket;
+import java.net.UnknownHostException;
+import java.util.Properties;
+
+public class ServiceAccessControllerTest extends TestCase {
+
+ public void testWrongExactIPAddressPermission1() throws Exception {
+ try {
+ IPAddressPermissionFactory.getIPAddressMask("121.122.123.a");
+ fail();
+ } catch (IllegalArgumentException e) {
+ }
+ }
+
+ public void testWrongExactIPAddressPermission2() throws Exception {
+ try {
+ IPAddressPermissionFactory.getIPAddressMask("121.122.123.256");
+ fail();
+ } catch (IllegalArgumentException e) {
+ }
+ }
+
+ public void testExactIPAddressPermission() throws Exception {
+ IPAddressPermission permission =
IPAddressPermissionFactory.getIPAddressMask("121.122.123.124");
+ assertTrue(permission.implies(InetAddress.getByAddress(new byte[]{121,
122, 123, 124})));
+ assertFalse(permission.implies(InetAddress.getByAddress(new
byte[]{121, 122, 123, 125})));
+ }
+
+ public void testWrongStartWithIPAddressPermission1() throws Exception {
+ try {
+ IPAddressPermissionFactory.getIPAddressMask("121.0.123.0");
+ fail();
+ } catch (IllegalArgumentException e) {
+ }
+ }
+
+ public void testStartWithIPAddressPermission() throws Exception {
+ IPAddressPermission permission =
IPAddressPermissionFactory.getIPAddressMask("121.122.0.0");
+ assertTrue(permission.implies(InetAddress.getByAddress(new byte[]{121,
122, 123, 124})));
+ assertFalse(permission.implies(InetAddress.getByAddress(new
byte[]{121, 123, 123, 124})));
+ }
+
+ public void testFactorizedIPAddressPermission() throws Exception {
+ IPAddressPermission permission =
IPAddressPermissionFactory.getIPAddressMask("121.122.123.{1,2,3}");
+ assertTrue(permission.implies(InetAddress.getByAddress(new byte[]{121,
122, 123, 1})));
+ assertTrue(permission.implies(InetAddress.getByAddress(new byte[]{121,
122, 123, 2})));
+ assertTrue(permission.implies(InetAddress.getByAddress(new byte[]{121,
122, 123, 3})));
+ assertFalse(permission.implies(InetAddress.getByAddress(new
byte[]{121, 122, 123, 4})));
+
+ permission =
IPAddressPermissionFactory.getIPAddressMask("121.122.{1,2,3}");
+ assertTrue(permission.implies(InetAddress.getByAddress(new byte[]{121,
122, 1, 1})));
+ assertTrue(permission.implies(InetAddress.getByAddress(new byte[]{121,
122, 2, 2})));
+ assertTrue(permission.implies(InetAddress.getByAddress(new byte[]{121,
122, 3, 3})));
+ assertFalse(permission.implies(InetAddress.getByAddress(new
byte[]{121, 122, 4, 3})));
+ }
+
+ public void testNetmaskIPAddressPermission() throws Exception {
+ IPAddressPermission permission =
IPAddressPermissionFactory.getIPAddressMask("121.122.123.254/31");
+ assertTrue(permission.implies(InetAddress.getByAddress(new byte[]{121,
122, 123, (byte) 254})));
+ assertTrue(permission.implies(InetAddress.getByAddress(new byte[]{121,
122, 123, (byte) 255})));
+ assertFalse(permission.implies(InetAddress.getByAddress(new
byte[]{121, 122, 123, (byte) 253})));
+
+ permission =
IPAddressPermissionFactory.getIPAddressMask("121.122.123.254/255.255.255.254");
+ assertTrue(permission.implies(InetAddress.getByAddress(new byte[]{121,
122, 123, (byte) 254})));
+ assertTrue(permission.implies(InetAddress.getByAddress(new byte[]{121,
122, 123, (byte) 255})));
+ assertFalse(permission.implies(InetAddress.getByAddress(new
byte[]{121, 122, 123, (byte) 253})));
+ }
+
+ public void testExactIPv6AddressPermission() throws Exception {
+ IPAddressPermission permission =
IPAddressPermissionFactory.getIPAddressMask("101:102:103:104:105:106:107:108");
+ assertTrue(permission.implies(InetAddress.getByAddress(new byte[]{1,
1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8})));
+ assertFalse(permission.implies(InetAddress.getByAddress(new byte[]{1,
1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 9})));
+ }
+
+ public void testNetmaskIPv6AddressPermission() throws Exception {
+ IPAddressPermission permission =
IPAddressPermissionFactory.getIPAddressMask("101:102:103:104:105:106:107:FFFE/127");
+ assertTrue(permission.implies(InetAddress.getByAddress(new byte[]{1,
1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, (byte) 255, (byte) 254})));
+ assertTrue(permission.implies(InetAddress.getByAddress(new byte[]{1,
1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, (byte) 255, (byte) 255})));
+ assertFalse(permission.implies(InetAddress.getByAddress(new byte[]{1,
1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, (byte) 255, (byte) 253})));
+
+ permission =
IPAddressPermissionFactory.getIPAddressMask("101:102:103:104:105:106:107:FFFE/FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFE");
+ assertTrue(permission.implies(InetAddress.getByAddress(new byte[]{1,
1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, (byte) 255, (byte) 254})));
+ assertTrue(permission.implies(InetAddress.getByAddress(new byte[]{1,
1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, (byte) 255, (byte) 255})));
+ assertFalse(permission.implies(InetAddress.getByAddress(new byte[]{1,
1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, (byte) 255, (byte) 253})));
+ }
+
+// public void testServiceOKWithInit() throws Exception {
+// Properties properties = new Properties();
+// properties.put("only_from", "121.122.{56,57}");
+//
+// MockServerService mockServerService = new MockServerService();
+// ServiceAccessController controller = new
ServiceAccessController(mockServerService);
+// controller.init(properties);
+//
+// executeTestServiceOK(mockServerService, controller);
+// }
+//
+// public void testServiceNOKWithInit() throws Exception {
+// Properties properties = new Properties();
+// properties.put("only_from", "121.122.{56,57}");
+//
+// MockServerService mockServerService = new MockServerService();
+// ServiceAccessController controller = new
ServiceAccessController(mockServerService);
+// controller.init(properties);
+//
+// executeTestServiceOK(mockServerService, controller);
+// }
+
+ private void executeTestServiceOK(MockServerService mockServerService,
ServiceAccessController controller) throws UnknownHostException,
ServiceException, IOException {
+ MockSocket mockSocket = new MockSocket(InetAddress.getByAddress(new
byte[]{121, 122, 56, 123}));
+ controller.service(mockSocket);
+ assertSame(mockSocket, mockServerService.socket);
+
+ mockSocket = new MockSocket(InetAddress.getByAddress(new byte[]{121,
122, 57, 123}));
+ controller.service(mockSocket);
+ assertSame(mockSocket, mockServerService.socket);
+ }
+
+ private void executeTestServiceNOK(ServiceAccessController controller)
throws UnknownHostException, ServiceException, IOException {
+ MockSocket mockSocket = new MockSocket(InetAddress.getByAddress(new
byte[]{121, 122, 58, 123}));
+ try {
+ controller.service(mockSocket);
+ fail();
+ } catch (SecurityException e) {
+ }
+ }
+
+ private static class MockSocket extends Socket {
+ private final InetAddress address;
+
+ private MockSocket(InetAddress address) {
+ this.address = address;
+ }
+
+ public InetAddress getInetAddress() {
+ return address;
+ }
+ }
+
+ private static class MockServerService implements ServerService {
+ private Socket socket;
+
+ public void init(Properties props) throws Exception {
+ }
+
+ public void start() throws ServiceException {
+ throw new AssertionError();
+ }
+
+ public void stop() throws ServiceException {
+ throw new AssertionError();
+ }
+
+ public String getIP() {
+ throw new AssertionError();
+ }
+
+ public int getPort() {
+ throw new AssertionError();
+ }
+
+ public void service(Socket socket) throws ServiceException,
IOException {
+ this.socket = socket;
+ }
+
+ @Override
+ public void service(InputStream in, OutputStream out) throws
ServiceException, IOException {
+ }
+
+ public String getName() {
+ throw new AssertionError();
+ }
+ }
+}
\ No newline at end of file
Propchange:
openejb/trunk/openejb3/server/openejb-server/src/test/java/org/apache/openejb/server/ServiceAccessControllerTest.java
------------------------------------------------------------------------------
svn:eol-style = native