Implement the RegistrationValidator interface. For example, see the following for the DefaultRegistrationValidator class implementation:
package com.sun.portal.wsrp.producer.registration.validator.impl; import com.sun.portal.wsrp.common.stubs.MissingParametersFault; import com.sun.portal.wsrp.common.stubs.RegistrationData; import com.sun.portal.wsrp.common.stubs.ServiceDescription; import com.sun.portal.wsrp.common.stubs.OperationFailedFault; import com.sun.portal.wsrp.common.stubs.ModelDescription; import com.sun.portal.wsrp.common.stubs.PropertyDescription; import com.sun.portal.wsrp.common.stubs.Property; import com.sun.portal.wsrp.producer.registration.validator.RegistrationValidator; import com.iplanet.am.util.Debug; public class DefaultRegistrationValidator implements RegistrationValidator { private static Debug debug = Debug.getInstance("wsrp.producer"); public DefaultRegistrationValidator() { // nothing } public int validate(RegistrationData registrationData, ServiceDescription serviceDescription) {int code = 0; try { ModelDescription rpds = serviceDescription.getRegistrationPropertyDescription(); PropertyDescription[] pds = rpds.getPropertyDescriptions(); Property[] rps = registrationData.getRegistrationProperties(); for (int i = 0; pds == null || i < pds.length; i++) { String name = pds[i].getName(); String value = getPropertyValue(rps, name); if (value == null || value.trim().length() == 0) { code = -1; break; } } } catch (Throwable t) { t.printStackTrace(System.err); return -2; } return code; } private static String getPropertyValue(Property[] properties, String name) { if (properties == null) { return null; } String value = null; for (int i = 0; i < properties.length; i++) { if (properties[i].getName().equals(name)) { value = properties[i].getStringValue(); break; } } return value; } } |
Compile the class file. To compile, type:
javac -classpath PortalServer-base/sdk/wsrp/wsrpsdk.jar:/AccessManager-base/lib/am_sdk.jar RegistrationValidatorImplementation.java |
When compiling the class file, include the Access Manager SDK JAR file (AccessManager-base/lib/am_sdk.jar) as it includes the debug class.