You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/06/01 01:57:24 UTC

svn commit: r1344944 - in /openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina: TomEEJAASRealm.java TomEERealm.java

Author: rmannibucau
Date: Thu May 31 23:57:24 2012
New Revision: 1344944

URL: http://svn.apache.org/viewvc?rev=1344944&view=rev
Log:
TOMEE-212 using a combined realm to be more generic

Added:
    openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEERealm.java
      - copied, changed from r1344942, openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEJAASRealm.java
Removed:
    openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEJAASRealm.java

Copied: openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEERealm.java (from r1344942, openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEJAASRealm.java)
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEERealm.java?p2=openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEERealm.java&p1=openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEJAASRealm.java&r1=1344942&r2=1344944&rev=1344944&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEJAASRealm.java (original)
+++ openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEERealm.java Thu May 31 23:57:24 2012
@@ -1,16 +1,39 @@
 package org.apache.tomee.catalina;
 
 import java.security.Principal;
+import java.security.cert.X509Certificate;
 import javax.security.auth.callback.CallbackHandler;
+import org.apache.catalina.realm.CombinedRealm;
 import org.apache.catalina.realm.JAASRealm;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.spi.SecurityService;
+import org.ietf.jgss.GSSContext;
 
-public class TomEEJAASRealm extends JAASRealm {
+public class TomEERealm extends CombinedRealm {
     @Override
-    protected Principal authenticate(String username, CallbackHandler callbackHandler) {
-        final Principal principal = super.authenticate(username, callbackHandler);
-        if (principal == null) {
+    public Principal authenticate(String username, String password) {
+        return logInTomEE(super.authenticate(username, password));
+    }
+
+    @Override
+    public Principal authenticate(X509Certificate[] certs) {
+        return logInTomEE(super.authenticate(certs));
+    }
+
+    @Override
+    public Principal authenticate(String username, String clientDigest,
+                                  String nonce, String nc, String cnonce, String qop,
+                                  String realmName, String md5a2) {
+        return logInTomEE(super.authenticate(username, clientDigest, nonce, nc, cnonce, qop, realmName, md5a2));
+    }
+
+    @Override
+    public Principal authenticate(GSSContext gssContext, boolean storeCreds) {
+        return logInTomEE(super.authenticate(gssContext, storeCreds));
+    }
+
+    private Principal logInTomEE(final Principal pcp) {
+        if (pcp == null) {
             return null;
         }
 
@@ -20,11 +43,11 @@ public class TomEEJAASRealm extends JAAS
             // which is the previous one
             // so no need to clean twice here
             if (OpenEJBSecurityListener.requests.get() != null) {
-                ss.enterWebApp(this, principal, OpenEJBSecurityListener.requests.get().getWrapper().getRunAs());
+                ss.enterWebApp(this, pcp, OpenEJBSecurityListener.requests.get().getWrapper().getRunAs());
             } else {
-                ss.enterWebApp(this, principal, null);
+                ss.enterWebApp(this, pcp, null);
             }
         }
-        return principal;
+        return pcp;
     }
 }