Author: richard.opalka(a)jboss.com
Date: 2009-03-25 06:02:47 -0400 (Wed, 25 Mar 2009)
New Revision: 9679
Added:
spi/trunk/src/main/java/org/jboss/wsf/spi/annotation/AuthMethod.java
spi/trunk/src/main/java/org/jboss/wsf/spi/annotation/TransportGuarantee.java
Modified:
spi/trunk/src/main/java/org/jboss/wsf/spi/annotation/WebContext.java
Log:
[JBWS-2565] providing helper classes
Added: spi/trunk/src/main/java/org/jboss/wsf/spi/annotation/AuthMethod.java
===================================================================
--- spi/trunk/src/main/java/org/jboss/wsf/spi/annotation/AuthMethod.java
(rev 0)
+++ spi/trunk/src/main/java/org/jboss/wsf/spi/annotation/AuthMethod.java 2009-03-25
10:02:47 UTC (rev 9679)
@@ -0,0 +1,78 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.wsf.spi.annotation;
+
+/**
+ * The authMethod is used to configure the authentication mechanism for the web service.
+ * As a prerequisite to gaining access to any web service which are protected by an
+ * authorization constraint, a user must have authenticated using the configured
mechanism.
+ *
+ * @author ropalka(a)redhat.com
+ */
+public final class AuthMethod
+{
+
+ /**
+ * Basic authentication.
+ */
+ public static final String BASIC = "BASIC";
+ /**
+ * Client certificate based authentication.
+ */
+ public static final String CLIENT_CERT = "CLIENT-CERT";
+
+ /**
+ * Forbidden constructor.
+ */
+ private AuthMethod()
+ {
+ super();
+ }
+
+ /**
+ * Returns string representing correct auth method value.
+ * @param s string to convert, both lowercased and uppercased values are accepted
+ * @return correct auth method value
+ * @throws IllegalArgumentException if <b>s</b> is <b>null</b>
or it contains unknown value.
+ */
+ public static String valueOf(final String s)
+ {
+ if (s != null)
+ {
+ if (s.equals(""))
+ {
+ return s;
+ }
+ if (s.equals(AuthMethod.BASIC))
+ {
+ return AuthMethod.BASIC;
+ }
+ if (s.equals(AuthMethod.CLIENT_CERT))
+ {
+ return AuthMethod.CLIENT_CERT;
+ }
+ }
+
+ throw new IllegalArgumentException("Illegal auth method value: " + s);
+ }
+
+}
Added: spi/trunk/src/main/java/org/jboss/wsf/spi/annotation/TransportGuarantee.java
===================================================================
--- spi/trunk/src/main/java/org/jboss/wsf/spi/annotation/TransportGuarantee.java
(rev 0)
+++
spi/trunk/src/main/java/org/jboss/wsf/spi/annotation/TransportGuarantee.java 2009-03-25
10:02:47 UTC (rev 9679)
@@ -0,0 +1,95 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.wsf.spi.annotation;
+
+/**
+ * The transportGuarantee specifies that the communication
+ * between client and server should be NONE, INTEGRAL, or
+ * CONFIDENTIAL. NONE means that the application does not require any
+ * transport guarantees. A value of INTEGRAL means that the application
+ * requires that the data sent between the client and server be sent in
+ * such a way that it can't be changed in transit. CONFIDENTIAL means
+ * that the application requires that the data be transmitted in a
+ * fashion that prevents other entities from observing the contents of
+ * the transmission. In most cases, the presence of the INTEGRAL or
+ * CONFIDENTIAL flag will indicate that the use of SSL is required.
+ *
+ * @author ropalka(a)redhat.com
+ */
+public final class TransportGuarantee
+{
+
+ /**
+ * Application does not require any transport guarantees.
+ */
+ public static final String NONE = "NONE";
+ /**
+ * Application requires that the data sent between the client and
+ * server be sent in such a way that it can't be changed in transit.
+ */
+ public static final String INTEGRAL = "INTEGRAL";
+ /**
+ * Application requires that the data be transmitted in a fashion that
+ * prevents other entities from observing the contents of the transmission.
+ */
+ public static final String CONFIDENTIAL = "CONFIDENTIAL";
+
+ /**
+ * Forbidden constructor.
+ */
+ private TransportGuarantee()
+ {
+ super();
+ }
+
+ /**
+ * Returns string representing correct transport guarantee value.
+ * @param s string to convert, both lowercased and uppercased values are accepted
+ * @return correct transport guarantee value
+ * @throws IllegalArgumentException if <b>s</b> is <b>null</b>
or it contains unknown value.
+ */
+ public static String valueOf(final String s)
+ {
+ if (s != null)
+ {
+ if (s.equals(""))
+ {
+ return s;
+ }
+ if (s.equals(TransportGuarantee.NONE))
+ {
+ return TransportGuarantee.NONE;
+ }
+ if (s.equals(TransportGuarantee.INTEGRAL))
+ {
+ return TransportGuarantee.INTEGRAL;
+ }
+ if (s.equals(TransportGuarantee.CONFIDENTIAL))
+ {
+ return TransportGuarantee.CONFIDENTIAL;
+ }
+ }
+
+ throw new IllegalArgumentException("Illegal transport guarantee value: "
+ s);
+ }
+
+}
Modified: spi/trunk/src/main/java/org/jboss/wsf/spi/annotation/WebContext.java
===================================================================
--- spi/trunk/src/main/java/org/jboss/wsf/spi/annotation/WebContext.java 2009-03-25
09:35:56 UTC (rev 9678)
+++ spi/trunk/src/main/java/org/jboss/wsf/spi/annotation/WebContext.java 2009-03-25
10:02:47 UTC (rev 9679)
@@ -35,7 +35,7 @@
@Retention(value = RetentionPolicy.RUNTIME)
@Target(value = { ElementType.TYPE })
public @interface WebContext {
-
+
/**
* The contextRoot element specifies the context root that the web service endpoint is
deployed to.
* If it is not specified it will be derived from the deployment short name.
@@ -65,6 +65,8 @@
* constraint, a user must have authenticated using the configured mechanism.
*
* Legal values for this element are "BASIC", or "CLIENT-CERT".
+ *
+ * @see AuthMethod
*/
String authMethod() default "";
@@ -79,6 +81,8 @@
* fashion that prevents other entities from observing the contents of
* the transmission. In most cases, the presence of the INTEGRAL or
* CONFIDENTIAL flag will indicate that the use of SSL is required.
+ *
+ * @see TransportGuarantee
*/
String transportGuarantee() default "";