Author: dblevins
Date: Mon Jul  9 16:53:56 2007
New Revision: 554792

URL: http://svn.apache.org/viewvc?view=rev&rev=554792
Log:
Combined AuthenticationRequest and RealmPrincipalInfo.  Moved default realm 
name into a configurable property of the SecurityService.

Removed:
    
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/RealmPrincipalInfo.java
Modified:
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java
    
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/AuthenticationRequest.java
    
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/ClientSecurity.java
    
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java
    
openejb/trunk/openejb3/server/openejb-client/src/test/java/org/apache/openejb/client/ClientLoginTest.java
    
openejb/trunk/openejb3/server/openejb-client/src/test/java/org/apache/openejb/client/ClientSecurityTest.java
    
openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/AuthRequestHandler.java

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java?view=diff&rev=554792&r1=554791&r2=554792
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java
 Mon Jul  9 16:53:56 2007
@@ -63,6 +63,7 @@
     private final Subject defaultSubject;
 
     private final SecurityContext defaultContext;
+    private String realmName = "PropertiesLogin";
 
     public SecurityServiceImpl() {
 
@@ -88,15 +89,22 @@
         }
     }
 
+    public void setRealmName(String realmName) {
+        this.realmName = realmName;
+    }
+
     public void init(Properties props) throws Exception {
     }
 
     public Object login(String username, String password) throws 
LoginException {
-        return login("PropertiesLogin", username, password);
+        return login(realmName, username, password);
     }
 
-    public Object login(String securityRealm, String username, String 
password) throws LoginException {
-        LoginContext context = new LoginContext(securityRealm, new 
UsernamePasswordCallbackHandler(username, password));
+    public Object login(String realmName, String username, String password) 
throws LoginException {
+        if (realmName == null){
+            realmName = this.realmName;
+        }
+        LoginContext context = new LoginContext(realmName, new 
UsernamePasswordCallbackHandler(username, password));
         context.login();
 
         Subject subject = context.getSubject();

Modified: 
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/AuthenticationRequest.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/AuthenticationRequest.java?view=diff&rev=554792&r1=554791&r2=554792
==============================================================================
--- 
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/AuthenticationRequest.java
 (original)
+++ 
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/AuthenticationRequest.java
 Mon Jul  9 16:53:56 2007
@@ -22,14 +22,20 @@
 
 public class AuthenticationRequest implements Request {
 
-    private transient Object principal;
-    private transient Object credentials;
+    private transient String realm;
+    private transient String username;
+    private transient String credentials;
 
     public AuthenticationRequest() {
     }
 
-    public AuthenticationRequest(Object principal, Object credentials) {
-        this.principal = principal;
+    public AuthenticationRequest(String principal, String credentials) {
+        this(null, principal, credentials);
+    }
+
+    public AuthenticationRequest(String realm, String principal, String 
credentials) {
+        this.realm = realm;
+        this.username = principal;
         this.credentials = credentials;
     }
 
@@ -37,29 +43,27 @@
         return RequestMethodConstants.AUTH_REQUEST;
     }
 
-    public Object getPrincipal() {
-        return principal;
+    public String getRealm() {
+        return realm;
     }
 
-    public Object getCredentials() {
-        return credentials;
+    public String getUsername() {
+        return username;
     }
 
-    public void setPrincipal(Object principal) {
-        this.principal = principal;
-    }
-
-    public void setCredentials(Object credentials) {
-        this.credentials = credentials;
+    public String getCredentials() {
+        return credentials;
     }
 
     public void readExternal(ObjectInput in) throws IOException, 
ClassNotFoundException {
-        principal = in.readObject();
-        credentials = in.readObject();
+        realm = (String) in.readObject();
+        username = (String) in.readObject();
+        credentials = (String) in.readObject();
     }
 
     public void writeExternal(ObjectOutput out) throws IOException {
-        out.writeObject(principal);
+        out.writeObject(realm);
+        out.writeObject(username);
         out.writeObject(credentials);
     }
 }

Modified: 
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/ClientSecurity.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/ClientSecurity.java?view=diff&rev=554792&r1=554791&r2=554792
==============================================================================
--- 
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/ClientSecurity.java
 (original)
+++ 
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/ClientSecurity.java
 Mon Jul  9 16:53:56 2007
@@ -121,12 +121,12 @@
      * @throws FailedLoginException if the username password combination is 
not valid
      */
     public static Object directAuthentication(String username, String 
password, ServerMetaData server) throws FailedLoginException {
-        return directAuthentication("PropertiesLogin", username, password, 
server);
+        return directAuthentication(null, username, password, server);
     }
 
     public static Object directAuthentication(String securityRealm, String 
username, String password, ServerMetaData server) throws FailedLoginException {
         // authenticate
-        AuthenticationRequest authReq = new AuthenticationRequest(new 
RealmPrincipalInfo(securityRealm, username), password);
+        AuthenticationRequest authReq = new 
AuthenticationRequest(securityRealm, username, password);
         AuthenticationResponse authRes;
         try {
             authRes = (AuthenticationResponse) Client.request(authReq, new 
AuthenticationResponse(), server);

Modified: 
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java?view=diff&rev=554792&r1=554791&r2=554792
==============================================================================
--- 
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java
 (original)
+++ 
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java
 Mon Jul  9 16:53:56 2007
@@ -127,8 +127,7 @@
 
     public void authenticate(String userID, String psswrd) throws 
AuthenticationException {
 
-        String securityRealm = "PropertiesLogin";
-        AuthenticationRequest req = new AuthenticationRequest(new 
RealmPrincipalInfo(securityRealm, userID), psswrd);
+        AuthenticationRequest req = new AuthenticationRequest(userID, psswrd);
         AuthenticationResponse res = null;
 
         try {

Modified: 
openejb/trunk/openejb3/server/openejb-client/src/test/java/org/apache/openejb/client/ClientLoginTest.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-client/src/test/java/org/apache/openejb/client/ClientLoginTest.java?view=diff&rev=554792&r1=554791&r2=554792
==============================================================================
--- 
openejb/trunk/openejb3/server/openejb-client/src/test/java/org/apache/openejb/client/ClientLoginTest.java
 (original)
+++ 
openejb/trunk/openejb3/server/openejb-client/src/test/java/org/apache/openejb/client/ClientLoginTest.java
 Mon Jul  9 16:53:56 2007
@@ -41,7 +41,7 @@
         // Verify stored server request
         assertTrue("serverRequest should be an instance of 
AuthenticationRequest", LoginTestUtil.serverRequest instanceof 
AuthenticationRequest);
         AuthenticationRequest authenticationRequest = (AuthenticationRequest) 
LoginTestUtil.serverRequest;
-        assertEquals("jonathan", 
((RealmPrincipalInfo)authenticationRequest.getPrincipal()).getPrincipalName());
+        assertEquals("jonathan", authenticationRequest.getUsername());
         assertEquals("secret", authenticationRequest.getCredentials());
 
         // get the subject

Modified: 
openejb/trunk/openejb3/server/openejb-client/src/test/java/org/apache/openejb/client/ClientSecurityTest.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-client/src/test/java/org/apache/openejb/client/ClientSecurityTest.java?view=diff&rev=554792&r1=554791&r2=554792
==============================================================================
--- 
openejb/trunk/openejb3/server/openejb-client/src/test/java/org/apache/openejb/client/ClientSecurityTest.java
 (original)
+++ 
openejb/trunk/openejb3/server/openejb-client/src/test/java/org/apache/openejb/client/ClientSecurityTest.java
 Mon Jul  9 16:53:56 2007
@@ -62,7 +62,7 @@
         // Verify stored server request
         assertTrue("serverRequest should be an instance of 
AuthenticationRequest", LoginTestUtil.serverRequest instanceof 
AuthenticationRequest);
         AuthenticationRequest authenticationRequest = (AuthenticationRequest) 
LoginTestUtil.serverRequest;
-        assertEquals("jonathan", 
((RealmPrincipalInfo)authenticationRequest.getPrincipal()).getPrincipalName());
+        assertEquals("jonathan", authenticationRequest.getUsername());
         assertEquals("secret", authenticationRequest.getCredentials());
 
         // verify client identity
@@ -97,7 +97,7 @@
                     // Verify stored server request
                     assertTrue("serverRequest should be an instance of 
AuthenticationRequest", LoginTestUtil.serverRequest instanceof 
AuthenticationRequest);
                     AuthenticationRequest authenticationRequest = 
(AuthenticationRequest) LoginTestUtil.serverRequest;
-                    assertEquals("jonathan", 
((RealmPrincipalInfo)authenticationRequest.getPrincipal()).getPrincipalName());
+                    assertEquals("jonathan", 
authenticationRequest.getUsername());
                     assertEquals("secret", 
authenticationRequest.getCredentials());
 
                     // verify client identity

Modified: 
openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/AuthRequestHandler.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/AuthRequestHandler.java?view=diff&rev=554792&r1=554791&r2=554792
==============================================================================
--- 
openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/AuthRequestHandler.java
 (original)
+++ 
openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/AuthRequestHandler.java
 Mon Jul  9 16:53:56 2007
@@ -20,7 +20,6 @@
 import org.apache.openejb.client.AuthenticationResponse;
 import org.apache.openejb.client.ClientMetaData;
 import org.apache.openejb.client.ResponseCodes;
-import org.apache.openejb.client.RealmPrincipalInfo;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.spi.SecurityService;
 import org.apache.openejb.util.Messages;
@@ -47,18 +46,9 @@
         try {
             req.readExternal(in);
 
-            String securityRealm = null;
-            String username;
-            if (req.getPrincipal() instanceof String) {
-                username = (String) req.getPrincipal();
-            } else if (req.getPrincipal() instanceof RealmPrincipalInfo) {
-                RealmPrincipalInfo info = 
(RealmPrincipalInfo)req.getPrincipal();
-                securityRealm = info.getSecurityRealm();
-                username = info.getPrincipalName();
-            } else {
-                throw new LoginException("Unkown message principal object: " + 
req.getPrincipal());
-            }
-            String password = (String) req.getCredentials();
+            String securityRealm = req.getRealm();
+            String username = req.getUsername();
+            String password = req.getCredentials();
 
             SecurityService securityService = 
SystemInstance.get().getComponent(SecurityService.class);
             Object token = securityService.login(securityRealm, username, 
password);


Reply via email to