new package location for CatalinaRealmAdapter
authormaxcooper <maxcooper>
Sat, 17 Aug 2002 14:11:00 +0000 (14:11 +0000)
committermaxcooper <maxcooper>
Sat, 17 Aug 2002 14:11:00 +0000 (14:11 +0000)
src/catalina-example/org/securityfilter/example/catalina/TrivialCatalinaRealm.java [new file with mode: 0644]
src/catalina/org/securityfilter/realm/catalina/CatalinaRealmAdapter.java [new file with mode: 0644]
web/catalina-example/WEB-INF/securityfilter-config.xml

diff --git a/src/catalina-example/org/securityfilter/example/catalina/TrivialCatalinaRealm.java b/src/catalina-example/org/securityfilter/example/catalina/TrivialCatalinaRealm.java
new file mode 100644 (file)
index 0000000..843f352
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+ * $Header: /cvsroot/securityfilter/securityfilter/src/catalina-example/org/securityfilter/example/catalina/Attic/TrivialCatalinaRealm.java,v 1.1 2002/08/17 14:11:16 maxcooper Exp $
+ * $Revision: 1.1 $
+ * $Date: 2002/08/17 14:11:16 $
+ *
+ * ====================================================================
+ * The SecurityFilter Software License, Version 1.1
+ *
+ * (this license is derived and fully compatible with the Apache Software
+ * License - see http://www.apache.org/LICENSE.txt)
+ *
+ * Copyright (c) 2002 SecurityFilter.org. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:
+ *       "This product includes software developed by
+ *        SecurityFilter.org (http://www.securityfilter.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The name "SecurityFilter" must not be used to endorse or promote
+ *    products derived from this software without prior written permission.
+ *    For written permission, please contact license@securityfilter.org .
+ *
+ * 5. Products derived from this software may not be called "SecurityFilter",
+ *    nor may "SecurityFilter" appear in their name, without prior written
+ *    permission of SecurityFilter.org.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ */
+
+package org.securityfilter.example.catalina;
+
+import org.apache.catalina.realm.GenericPrincipal;
+import org.apache.catalina.realm.RealmBase;
+
+import java.security.Principal;
+import java.util.ArrayList;
+
+/**
+ * TrivialCatalinaRealm - Trivial Catalina Realm implementation to demonstrate
+ * org.securityfilter.realm.catalina.CatalinaRealmAdapter adapter class.
+ *
+ * @author Max Cooper (max@maxcooper.com)
+ * @version $Revision: 1.1 $ $Date: 2002/08/17 14:11:16 $
+ */
+public class TrivialCatalinaRealm extends RealmBase {
+   private static final String THE_USERNAME = "username";
+   private static final String THE_PASSWORD = "password";
+   private static final String THE_ROLE = "inthisrole";
+
+   /**
+    * Return a short name for this Realm implementation.
+    */
+   protected String getName() {
+      return null;
+   }
+
+   /**
+    * Return the password associated with the given principal's user name.
+    */
+   protected String getPassword(String s) {
+      return (THE_USERNAME.equals(s) ? THE_PASSWORD : null);
+   }
+
+   /**
+    * Return the Principal associated with the given user name.
+    */
+   protected Principal getPrincipal(String s) {
+      if (THE_USERNAME.equals(s)) {
+         ArrayList roleList = new ArrayList();
+         roleList.add(THE_ROLE);
+         return new GenericPrincipal(this, THE_USERNAME, THE_PASSWORD, roleList);
+      } else {
+         return null;
+      }
+   }
+
+   /**
+    * Setter for exampleProperty to deomonstrate setting realm properties from config file.
+    *
+    * This has no effect other than printing a message when the property is set.
+    *
+    * @param value example property value
+    */
+   public void setExampleProperty(String value) {
+      System.out.println(this.getClass().getName() + ": exampleProperty set to \'" + value + "\'");
+   }
+}
+
+// ----------------------------------------------------------------------------
+// EOF
\ No newline at end of file
diff --git a/src/catalina/org/securityfilter/realm/catalina/CatalinaRealmAdapter.java b/src/catalina/org/securityfilter/realm/catalina/CatalinaRealmAdapter.java
new file mode 100644 (file)
index 0000000..0d362bc
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ * $Header: /cvsroot/securityfilter/securityfilter/src/catalina/org/securityfilter/realm/catalina/CatalinaRealmAdapter.java,v 1.1 2002/08/17 14:11:00 maxcooper Exp $
+ * $Revision: 1.1 $
+ * $Date: 2002/08/17 14:11:00 $
+ *
+ * ====================================================================
+ * The SecurityFilter Software License, Version 1.1
+ *
+ * (this license is derived and fully compatible with the Apache Software
+ * License - see http://www.apache.org/LICENSE.txt)
+ *
+ * Copyright (c) 2002 SecurityFilter.org. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ *    if any, must include the following acknowledgment:
+ *       "This product includes software developed by
+ *        SecurityFilter.org (http://www.securityfilter.org/)."
+ *    Alternately, this acknowledgment may appear in the software itself,
+ *    if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The name "SecurityFilter" must not be used to endorse or promote
+ *    products derived from this software without prior written permission.
+ *    For written permission, please contact license@securityfilter.org .
+ *
+ * 5. Products derived from this software may not be called "SecurityFilter",
+ *    nor may "SecurityFilter" appear in their name, without prior written
+ *    permission of SecurityFilter.org.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ */
+
+package org.securityfilter.realm.catalina;
+
+import org.apache.catalina.Realm;
+import org.securityfilter.realm.SecurityRealmInterface;
+
+import java.security.Principal;
+
+/**
+ * CatalinaRealmAdapter - adapts a Catalina Realm for use with the securityfilter
+ *
+ * @author Max Cooper (max@maxcooper.com)
+ * @version $Revision: 1.1 $ $Date: 2002/08/17 14:11:00 $
+ */
+public class CatalinaRealmAdapter implements SecurityRealmInterface {
+   private Realm realm;
+
+   /**
+    * Set the Catalina Realm that we are to adapt.
+    */
+   public void setRealm(Object realm) {
+      this.realm = (Realm) realm;
+   }
+
+   /**
+    * Authenticate a user.
+    *
+    * @param username a username
+    * @param password a plain text password, as entered by the user
+    *
+    * @return a Principal object representing the user if successful, false otherwise
+    */
+   public Principal authenticate(String username, String password) {
+      return realm.authenticate(username, password);
+   }
+
+   /**
+    * Test for role membership.
+    *
+    * Use Principal.getName() to get the username from the principal object.
+    *
+    * @param principal Principal object representing a user
+    * @param rolename name of a role to test for membership
+    * @return true if the user is in the role, false otherwise
+    */
+   public boolean isUserInRole(Principal principal, String rolename) {
+      return realm.hasRole(principal, rolename);
+   }
+}
+
+// ----------------------------------------------------------------------------
+// EOF
\ No newline at end of file
index 1dc48ad..ed419bf 100644 (file)
    </login-config>
 
    <!-- start with a Catalina realm adapter to wrap the Catalina realm definied below -->
-   <realm className="org.securityfilter.realm.adapter.CatalinaRealmAdapter" />
+   <realm className="org.securityfilter.realm.catalina.CatalinaRealmAdapter" />
 
    <!-- this is a Catalina realm that will be adapted to the securityfilter by the realm defined above -->
-   <realm className="org.securityfilter.catalina.TrivialCatalinaRealm">
+   <realm className="org.securityfilter.example.catalina.TrivialCatalinaRealm">
       <realm-param name="exampleProperty" value="it works!" />
    </realm>