You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2005/05/13 16:23:29 UTC
svn commit: r170024 - in
/lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases: AddIPRange.java
DeleteIPRange.java IPRange.java IPRangeProfile.java
Author: andreas
Date: Fri May 13 07:23:28 2005
New Revision: 170024
URL: http://svn.apache.org/viewcvs?rev=170024&view=rev
Log:
continued addIPRange usecase, added mock classes for remaining IP range management usecases
Added:
lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/DeleteIPRange.java
lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/IPRange.java
Modified:
lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AddIPRange.java
lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/IPRangeProfile.java
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AddIPRange.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AddIPRange.java?rev=170024&r1=170023&r2=170024&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AddIPRange.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/AddIPRange.java Fri May 13 07:23:28 2005
@@ -20,7 +20,11 @@
package org.apache.lenya.cms.ac.usecases;
import java.io.File;
+import java.net.InetAddress;
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.avalon.framework.container.ContainerUtil;
import org.apache.lenya.ac.IPRange;
import org.apache.lenya.ac.file.FileIPRange;
import org.apache.lenya.ac.file.FileIPRangeManager;
@@ -50,6 +54,9 @@
if (!AbstractItem.isValidId(id)) {
addErrorMessage("This is not a valid IP range ID.");
}
+
+ IPRangeProfile.validateAddresses(this);
+
}
/**
@@ -70,18 +77,46 @@
String description = getParameterAsString(IPRangeProfile.DESCRIPTION);
IPRange ipRange = new FileIPRange(configDir, id);
+ ContainerUtil.enableLogging(ipRange, getLogger());
+
ipRange.setName(name);
-
ipRange.setDescription(description);
+
+ String networkString = "";
+ String subnetString = "";
+
+ for (int i = 0; i < 4; i++) {
+ if (i > 0) {
+ networkString += ".";
+ subnetString += ".";
+ }
+ Part netPart = (Part) getParameter(IPRangeProfile.NETWORK_ADDRESS + "-" + i);
+ networkString += netPart.getValue();
+ Part subPart = (Part) getParameter(IPRangeProfile.SUBNET_MASK + "-" + i);
+ subnetString += subPart.getValue();
+ }
+
+ InetAddress networkAddress = InetAddress.getByName(networkString);
+ ipRange.setNetworkAddress(networkAddress.getAddress());
+
+ InetAddress subnetMask = InetAddress.getByName(subnetString);
+ ipRange.setSubnetMask(subnetMask.getAddress());
+
ipRange.save();
getIpRangeManager().add(ipRange);
}
-
+
/**
* @see org.apache.lenya.cms.usecase.AbstractUsecase#initParameters()
*/
protected void initParameters() {
super.initParameters();
+ List partNumbers = new ArrayList();
+ partNumbers.add(new Integer(0));
+ partNumbers.add(new Integer(1));
+ partNumbers.add(new Integer(2));
+ partNumbers.add(new Integer(3));
+ setParameter(IPRangeProfile.PART_NUMBERS, partNumbers);
for (byte i = 0; i < 4; i++) {
setParameter(IPRangeProfile.NETWORK_ADDRESS + "-" + i, new Part(i));
setParameter(IPRangeProfile.SUBNET_MASK + "-" + i, new Part(i));
Added: lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/DeleteIPRange.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/DeleteIPRange.java?rev=170024&view=auto
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/DeleteIPRange.java (added)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/DeleteIPRange.java Fri May 13 07:23:28 2005
@@ -0,0 +1,26 @@
+/*
+ * Copyright 1999-2004 The Apache Software Foundation
+ *
+ * Licensed 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.lenya.cms.ac.usecases;
+
+/**
+ * Delete an IP range.
+ *
+ * @version $Id:$
+ */
+public class DeleteIPRange {
+
+}
Added: lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/IPRange.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/IPRange.java?rev=170024&view=auto
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/IPRange.java (added)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/IPRange.java Fri May 13 07:23:28 2005
@@ -0,0 +1,26 @@
+/*
+ * Copyright 1999-2004 The Apache Software Foundation
+ *
+ * Licensed 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.lenya.cms.ac.usecases;
+
+/**
+ * Show information about an IP range.
+ *
+ * @version $Id:$
+ */
+public class IPRange extends AccessControlUsecase {
+
+}
Modified: lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/IPRangeProfile.java
URL: http://svn.apache.org/viewcvs/lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/IPRangeProfile.java?rev=170024&r1=170023&r2=170024&view=diff
==============================================================================
--- lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/IPRangeProfile.java (original)
+++ lenya/trunk/src/java/org/apache/lenya/cms/ac/usecases/IPRangeProfile.java Fri May 13 07:23:28 2005
@@ -22,6 +22,7 @@
import java.net.InetAddress;
import org.apache.lenya.ac.IPRange;
+import org.apache.lenya.cms.usecase.AbstractUsecase;
/**
* Usecase to change the profile of an IP range.
@@ -33,64 +34,84 @@
protected static final String DESCRIPTION = "description";
protected static final String NETWORK_ADDRESS = "networkAddress";
protected static final String SUBNET_MASK = "subnetMask";
+ protected static final String PART_NUMBERS = "partNumbers";
/**
* @see org.apache.lenya.cms.usecase.AbstractUsecase#doExecute()
*/
protected void doExecute() throws Exception {
super.doExecute();
-
+
String name = getParameterAsString(NAME);
String description = getParameterAsString(DESCRIPTION);
-
+
getIPRange().setName(name);
getIPRange().setDescription(description);
getIPRange().save();
-
+
}
-
+
private IPRange ipRange;
-
+
/**
* @return The IP range.
*/
protected IPRange getIPRange() {
return this.ipRange;
}
-
+
/**
* @see org.apache.lenya.cms.usecase.Usecase#setParameter(java.lang.String, java.lang.Object)
*/
public void setParameter(String name, Object value) {
super.setParameter(name, value);
-
+
if (name.equals(ID)) {
String id = (String) value;
this.ipRange = getIpRangeManager().getIPRange(id);
if (this.ipRange == null) {
throw new RuntimeException("IP range [" + id + "] not found.");
}
-
+
setParameter(NAME, this.ipRange.getName());
setParameter(DESCRIPTION, this.ipRange.getDescription());
-
+
InetAddress networkAddress = this.ipRange.getNetworkAddress();
InetAddress subnetMask = this.ipRange.getSubnetMask();
-
+
+ for (byte i = 0; i < 4; i++) {
+ setParameter(NETWORK_ADDRESS + "-" + i, new Part(i, ""
+ + networkAddress.getAddress()[i]));
+ setParameter(SUBNET_MASK + "-" + i, new Part(i, "" + subnetMask.getAddress()[i]));
+ }
+
+ }
+ }
+
+ protected static void validateAddresses(AbstractUsecase usecase) {
+ String[] names = { "network address", "subnet mask" };
+ String[] params = { IPRangeProfile.NETWORK_ADDRESS, IPRangeProfile.SUBNET_MASK };
+
+ for (byte type = 0; type < names.length; type++) {
for (byte i = 0; i < 4; i++) {
- setParameter(NETWORK_ADDRESS + "-" + i, new Part(i, networkAddress.getAddress()[i]));
- setParameter(SUBNET_MASK + "-" + i, new Part(i, subnetMask.getAddress()[i]));
+ String paramName = params[type] + "-" + i;
+ Part part = new Part(i);
+ part.setValue(usecase.getParameterAsString(paramName));
+ if (!part.isValid()) {
+ usecase.addErrorMessage("Part " + (i + 1) + " of the " + names[type]
+ + " is not valid.");
+ }
+ usecase.setParameter(paramName, part);
}
-
}
}
-
+
/**
* IP address holder.
*/
public static class Address {
private Part[] parts = new Part[4];
-
+
/**
* Ctor.
*/
@@ -99,17 +120,17 @@
this.parts[i] = new Part(i);
}
}
-
+
/**
* Ctor.
* @param address The address.
*/
public Address(InetAddress address) {
for (byte i = 0; i < this.parts.length; i++) {
- this.parts[i] = new Part(i, address.getAddress()[i]);
+ this.parts[i] = new Part(i, "" + address.getAddress()[i]);
}
}
-
+
/**
* @return The parts of this address.
*/
@@ -117,32 +138,32 @@
return this.parts;
}
}
-
+
/**
* IP address part holder.
*/
public static class Part {
private String value;
private byte position;
-
+
/**
* Ctor.
* @param _position The position.
* @param _value The value.
*/
- public Part(byte _position, byte _value) {
- this.value = Byte.toString(_value);
+ public Part(byte _position, String _value) {
+ this.value = _value;
this.position = _position;
}
-
+
/**
* Ctor.
* @param _position The position.
*/
public Part(byte _position) {
- this(_position, (byte) 0);
+ this(_position, "0");
}
-
+
/**
* Returns the position
* @return The position
@@ -150,7 +171,7 @@
public byte getPosition() {
return this.position;
}
-
+
/**
* Returns the value
* @return The value
@@ -158,31 +179,33 @@
public String getValue() {
return this.value;
}
-
+
/**
* @param _value The value.
*/
public void setValue(String _value) {
this.value = _value;
}
-
+
/**
* Checks if the part is valid.
* @return A boolean value.
*/
public boolean isValid() {
-
+
boolean valid = true;
try {
- Byte.parseByte(this.value);
- }
- catch (NumberFormatException e) {
+ int i = Integer.parseInt(this.value);
+ if (!(0 <= i && i <= 255)) {
+ valid = false;
+ }
+ } catch (NumberFormatException e) {
valid = false;
}
-
- return valid;
+
+ return valid;
}
-
+
}
-
-}
+
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org