You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by jf...@apache.org on 2008/11/01 00:54:23 UTC
svn commit: r709604 [2/2] - in
/webservices/juddi/branches/v3_trunk/juddi-core/src/main:
java/org/apache/juddi/api/impl/ java/org/apache/juddi/auth/
java/org/apache/juddi/config/ java/org/apache/juddi/cryptor/
java/org/apache/juddi/error/ java/org/apac...
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/uuidgen/UUIDGen.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/uuidgen/UUIDGenFactory.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/uuidgen/UUIDGenFactory.java?rev=709604&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/uuidgen/UUIDGenFactory.java (added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/uuidgen/UUIDGenFactory.java Fri Oct 31 16:54:22 2008
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2001-2008 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.juddi.uuidgen;
+
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.juddi.config.AppConfig;
+import org.apache.juddi.config.Property;
+import org.apache.juddi.util.Loader;
+import org.apache.log4j.Logger;
+
+/**
+ * Used to create the org.apache.juddi.uuidgen.UUIDGen implementation
+ * as specified by the 'juddi.uuidgen.impl' property. Defaults to
+ * org.apache.juddi.uuidgen.SecureUUIDGen if an implementation is not
+ * specified.
+ *
+ * @author Steve Viens (sviens@apache.org)
+ * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
+ */
+public abstract class UUIDGenFactory {
+ private static Logger log = Logger.getLogger(UUIDGenFactory.class);
+
+ // UUIDGen default implementation
+ private static final String DEFAULT_IMPL = "org.apache.juddi.uuidgen.DefaultUUIDGen";
+
+ // the shared UUIDGen instance
+ private static UUIDGen uuidgen = null;
+
+ /*
+ * Returns a new instance of a UUIDGenFactory.
+ *
+ * @return UUIDGen
+ */
+ public static UUIDGen getUUIDGen() {
+ if (uuidgen == null)
+ uuidgen = createUUIDGen();
+ return uuidgen;
+ }
+
+ /**
+ * Returns a new instance of a UUIDGen.
+ *
+ * @return UUIDGen
+ */
+
+
+ private static synchronized UUIDGen createUUIDGen() {
+ if (uuidgen != null)
+ return uuidgen;
+
+ // grab class name of the UUIDGen implementation to create
+ String className = DEFAULT_IMPL;
+ try {
+ // grab class name of the Authenticator implementation to create
+ className = AppConfig.getConfiguration().getString(Property.JUDDI_UUID_GENERATOR, DEFAULT_IMPL);
+ }
+ catch(ConfigurationException ce) {
+ log.error("Configuration exception occurred retrieving: " + Property.JUDDI_UUID_GENERATOR);
+ }
+
+
+ // write the UUIDGen implementation name to the log
+ log.debug("UUIDGen Implementation = " + className);
+
+ Class<?> uuidgenClass = null;
+ try {
+ // Use Loader to locate & load the UUIDGen implementation
+ uuidgenClass = Loader.getClassForName(className);
+ }
+ catch(ClassNotFoundException e) {
+ log.error("The specified UUIDGen class '" + className + "' was not found in classpath.");
+ log.error(e);
+ }
+
+ try {
+ // try to instantiate the UUIDGen implementation
+ uuidgen = (UUIDGen)uuidgenClass.newInstance();
+ }
+ catch(Exception e) {
+ log.error("Exception while attempting to instantiate the implementation of UUIDGen: " + uuidgenClass.getName() + "\n" + e.getMessage());
+ log.error(e);
+ }
+
+ return uuidgen;
+ }
+}
\ No newline at end of file
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/uuidgen/UUIDGenFactory.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/uuidgen/Win32UUIDGen.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/uuidgen/Win32UUIDGen.java?rev=709604&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/uuidgen/Win32UUIDGen.java (added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/uuidgen/Win32UUIDGen.java Fri Oct 31 16:54:22 2008
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2001-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.juddi.uuidgen;
+
+import java.io.IOException;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+
+/**
+ * Used to create new universally unique identifiers or UUID's (sometimes called
+ * GUID's). UDDI UUID's are allways formmated according to DCE UUID conventions.
+ *
+ * @author Steve Viens (sviens@apache.org)
+ */
+public final class Win32UUIDGen implements UUIDGen
+{
+ /**
+ *
+ */
+ public String uuidgen()
+ {
+ String[] uuids = this.uuidgen(1);
+ return uuids[0];
+ }
+
+ /**
+ *
+ */
+ public String[] uuidgen(int nmbr)
+ {
+ String[] uuids = new String[nmbr];
+
+ try
+ {
+ Runtime r = Runtime.getRuntime();
+ Process p = r.exec("uuidgen -n" + nmbr);
+ BufferedReader x = new BufferedReader(new InputStreamReader(p.getInputStream()));
+
+ for (int i = 0; i < nmbr; ++i)
+ uuids[i] = x.readLine();
+ }
+ catch (IOException ex)
+ {
+ ex.printStackTrace();
+ throw new RuntimeException(ex.getMessage());
+ }
+
+ return uuids;
+ }
+
+
+ /***************************************************************************/
+ /***************************** TEST DRIVER *********************************/
+ /***************************************************************************/
+
+
+ public static void main(String args[])
+ {
+ UUIDGen uuidgen = new Win32UUIDGen();
+
+ long start = System.currentTimeMillis();
+
+ // fast (3705 milliseconds)
+ for (int i = 1; i <= 250; ++i)
+ System.out.println( i + ": " + uuidgen.uuidgen());
+
+ long end = System.currentTimeMillis();
+
+ System.out.println("Generation (and display) of 250 UUID's took "+(end-start)+" milliseconds.");
+
+
+ start = System.currentTimeMillis();
+
+ // much faster (90 milliseconds)
+ String[] ids = uuidgen.uuidgen(250);
+ for (int i = 1; i < 250; ++i)
+ System.out.println( i + ": " + ids[i]);
+
+ end = System.currentTimeMillis();
+
+ System.out.println("Generation (and display) of 250 UUID's took "+(end-start)+" milliseconds.");
+ }
+}
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/uuidgen/Win32UUIDGen.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateAuth.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateAuth.java?rev=709604&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateAuth.java (added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateAuth.java Fri Oct 31 16:54:22 2008
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2001-2008 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.juddi.validation;
+
+import java.util.Date;
+import javax.persistence.EntityManager;
+
+import org.uddi.v3_service.DispositionReportFaultMessage;
+import org.apache.juddi.error.ErrorMessage;
+import org.apache.juddi.error.AuthTokenRequiredException;
+import org.apache.juddi.model.Publisher;
+
+/**
+ * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
+ */
+public class ValidateAuth {
+
+ public static final int AUTHTOKEN_ACTIVE = 1;
+ public static final int AUTHTOKEN_RETIRED = 0;
+
+ public static Publisher getPublisher(EntityManager em, String authInfo) throws DispositionReportFaultMessage {
+
+
+ if (authInfo == null || authInfo.length() == 0)
+ throw new AuthTokenRequiredException(new ErrorMessage("errors.auth.AuthRequired"));
+
+ org.apache.juddi.model.AuthToken modelAuthToken = em.find(org.apache.juddi.model.AuthToken.class, authInfo);
+ if (modelAuthToken == null)
+ throw new AuthTokenRequiredException(new ErrorMessage("errors.auth.AuthInvalid"));
+
+ Publisher publisher = em.find(Publisher.class, modelAuthToken.getPublisherId());
+ if (publisher == null)
+ throw new AuthTokenRequiredException(new ErrorMessage("errors.auth.AuthInvalid"));
+
+ // Auth token is being used. Adjust appropriate values so that it's internal 'expiration clock' is reset.
+ modelAuthToken.setLastUsed(new Date());
+ modelAuthToken.setNumberOfUses(modelAuthToken.getNumberOfUses() + 1);
+
+ return publisher;
+
+
+ }
+
+
+}
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateAuth.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages_en.properties
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages_en.properties?rev=709604&r1=709603&r2=709604&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages_en.properties (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages_en.properties Fri Oct 31 16:54:22 2008
@@ -112,6 +112,18 @@
errors.findtmodel.NoInput=At least one categoryBag, identifierBag or name must be supplied
errors.tmodelbag.NoInput=At tModel key must be supplied in the tModelBag
+#-- Authentication error messages
+errors.auth.AuthRequired=Authentication is required for this API call
+errors.auth.AuthInvalid=Invalid authentication information
+errors.auth.InvalidUserId=An invalid user identification was passed
+errors.auth.InvalidCredentials=Invalid credentials were passed
+errors.auth.NoPublisher=The user provided does not have a publishing account
+errors.auth.cryptor.InvalidKey=Invalid Key Exception in crypting the password
+errors.auth.cryptor.Padding=Padding Exception in crypting the password
+errors.auth.cryptor.Algorithm=Algorithm Exception in crypting the password
+errors.auth.cryptor.AlgorithmParam=Algorithm parameter Exception in crypting the password
+errors.auth.cryptor.BlockSize=Block size Exception in crypting the password
+errors.auth.cryptor.BadPadding=Bad Padding Exception in crypting the password
---------------------------------------------------------------------
To unsubscribe, e-mail: juddi-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: juddi-cvs-help@ws.apache.org