Author: keith
Date: Tue Jan 15 08:34:49 2008
New Revision: 12278

Log:

Adding security scenario7 to admin service at initialization
Adding login method to MahupUtils to call the login method of the admin service 
in a secured manner
calling this new method to login from signin.jsp



Modified:
   trunk/mashup/java/modules/core/src/org/wso2/mashup/MashupConstants.java
   
trunk/mashup/java/modules/core/src/org/wso2/mashup/transport/MashupServerInitializer.java
   trunk/mashup/java/modules/core/src/org/wso2/mashup/utils/MashupUtils.java
   
trunk/mashup/java/modules/javascriptdeployer/src/org/wso2/mashup/deployer/JSDeployer.java
   trunk/mashup/java/modules/www/signin.jsp

Modified: 
trunk/mashup/java/modules/core/src/org/wso2/mashup/MashupConstants.java
==============================================================================
--- trunk/mashup/java/modules/core/src/org/wso2/mashup/MashupConstants.java     
(original)
+++ trunk/mashup/java/modules/core/src/org/wso2/mashup/MashupConstants.java     
Tue Jan 15 08:34:49 2008
@@ -91,5 +91,10 @@
     public static final String MASHUP_USER_ROLE = "mashup_user";
 
     public static final String SELF_REGISTRATION_ENABLED = 
"self_registration_enabled";
+
+    public static final String MASHUP_ADMIN_SERVICE = 
"wso2mashup-adminService"; 
+    public static final String MASHUP_ADMIN_SERVICEUT = 
"MashupAdminServiceUT"; 
+    public static final String MASHUP_ADMIN_SERVICEIC = "MashupAdminServiceUT";
+    public static final String USER_LOGGED_IN = "UserLoggedIn";
     public static final String INITIAL_SETUP_COMPLETE = 
"initial_setup_complete";
 }

Modified: 
trunk/mashup/java/modules/core/src/org/wso2/mashup/transport/MashupServerInitializer.java
==============================================================================
--- 
trunk/mashup/java/modules/core/src/org/wso2/mashup/transport/MashupServerInitializer.java
   (original)
+++ 
trunk/mashup/java/modules/core/src/org/wso2/mashup/transport/MashupServerInitializer.java
   Tue Jan 15 08:34:49 2008
@@ -29,6 +29,7 @@
 import org.wso2.usermanager.UserManagerException;
 import org.wso2.utils.ServerException;
 import org.wso2.wsas.ServerInitializer;
+import org.wso2.wsas.admin.service.SecurityScenarioConfigAdmin;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -64,7 +65,16 @@
                 newMap.put("scripts/" + username, arrayList);
                 deploymentEngine.setDirectoryToExtensionMappingMap(newMap);
             }
-            
+
+            SecurityScenarioConfigAdmin admin = new 
SecurityScenarioConfigAdmin();
+            
admin.assignUsersAndRolesAndKeyStores(MashupConstants.MASHUP_ADMIN_SERVICEUT, 
null, "scenario7", new String [] {"wso2is.jks"}, "wso2is.jks",
+                                      new String[] { },
+                                      new String[] { 
MashupConstants.MASHUP_USER_ROLE });
+
+//            
admin.assignUsersAndRoles(MashupConstants.MASHUP_ADMIN_SERVICEIC, null, 
"scenario2",
+//                                      new String[] { },
+//                                      new String[] { 
MashupConstants.MASHUP_USER_ROLE });
+
             // Applying a dummy tag so that searching works
             // https://wso2.org/jira/browse/REGISTRY-24
             SecureRegistry secureRegistry =

Modified: 
trunk/mashup/java/modules/core/src/org/wso2/mashup/utils/MashupUtils.java
==============================================================================
--- trunk/mashup/java/modules/core/src/org/wso2/mashup/utils/MashupUtils.java   
(original)
+++ trunk/mashup/java/modules/core/src/org/wso2/mashup/utils/MashupUtils.java   
Tue Jan 15 08:34:49 2008
@@ -15,14 +15,24 @@
  */
 package org.wso2.mashup.utils;
 
+import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.client.Options;
+import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.transport.http.util.URIEncoderDecoder;
 import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ConfigurationContextFactory;
 import org.apache.axis2.deployment.DeploymentEngine;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.util.XMLChar;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.neethi.Policy;
+import org.apache.neethi.PolicyEngine;
+import org.apache.rampart.RampartMessageData;
+import org.apache.rampart.policy.model.CryptoConfig;
+import org.apache.rampart.policy.model.RampartConfig;
 import org.wso2.mashup.MashupConstants;
 import org.wso2.mashup.MashupFault;
 import org.wso2.usermanager.UserManagerException;
@@ -33,20 +43,12 @@
 import org.wso2.wsas.persistence.PersistenceManager;
 import org.wso2.wsas.persistence.dataobject.ServiceUserDO;
 
-import javax.management.InstanceNotFoundException;
-import javax.management.MBeanException;
-import javax.management.MBeanServer;
-import javax.management.MBeanServerFactory;
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectName;
-import javax.management.ReflectionException;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
+import javax.management.*;
+import javax.xml.stream.XMLStreamException;
+import java.io.*;
 import java.util.ArrayList;
 import java.util.Hashtable;
+import java.util.Properties;
 
 public class MashupUtils {
 
@@ -363,6 +365,72 @@
         return serviceUiSource;
     }
 
+    public static void login(String username, String password) throws 
MashupFault {
+        try {
+            ServerManager serverManager = ServerManager.getInstance();
+            ConfigurationContext context = serverManager.configContext;
+            ConfigurationContext defaultConfigurationContext =
+                    
ConfigurationContextFactory.createDefaultConfigurationContext();
+            
defaultConfigurationContext.setAxisConfiguration(context.getAxisConfiguration());
+            ServiceClient client = new 
ServiceClient(defaultConfigurationContext, null);
+            client.engageModule("rampart");
+            client.engageModule("addressing");
+            Options options = client.getOptions();
+            options.setAction("urn:login");
+            options.setTo(new EndpointReference("http://localhost:"; + 
serverManager.getHttpPort() +
+                    context.getContextRoot() + context.getServicePath() + 
"/MashupAdminServiceUT/login"));
+            options.setUserName(username);
+            options.setPassword(password);
+            client.setOptions(options);
+            String wso2wsasHome = System.getProperty("wso2wsas.home");
+            Policy stsPolicy = loadPolicy(wso2wsasHome + File.separator +
+                "conf" + File.separator + "rampart" + File.separator + 
"scenario7-policy.xml");
+            
client.getServiceContext().setProperty(RampartMessageData.KEY_RAMPART_POLICY, 
stsPolicy);
+            client.sendReceive(null);
+        } catch (AxisFault axisFault) {
+            throw new MashupFault(axisFault);
+        } catch (XMLStreamException e) {
+            throw new MashupFault(e);
+        } catch (Exception e) {
+            throw new MashupFault(e);
+        }
+    }
+
+    private static Policy loadPolicy(String xmlPath) throws XMLStreamException,
+            FileNotFoundException {
+
+        ServerConfiguration serverConfig = ServerConfiguration.getInstance();
+        StAXOMBuilder builder = new StAXOMBuilder(xmlPath);
+        Policy policy = PolicyEngine.getPolicy(builder.getDocumentElement());
+
+        RampartConfig rc = new RampartConfig();
+
+        String alias = 
serverConfig.getFirstProperty("Security.KeyStore.KeyAlias");
+        String keystoreLocation = 
serverConfig.getFirstProperty("Security.KeyStore.Location");
+        String keystoreType = 
serverConfig.getFirstProperty("Security.KeyStore.Type");
+        String keystorePassword = 
serverConfig.getFirstProperty("Security.KeyStore.Password");
+        rc.setEncryptionUser(alias);
+
+
+        File keyStoreFile = new File(keystoreLocation);
+
+        CryptoConfig encrCryptoConfig = new CryptoConfig();
+        
encrCryptoConfig.setProvider("org.apache.ws.security.components.crypto.Merlin");
+
+        Properties prop2 = new Properties();
+
+        prop2.put("org.apache.ws.security.crypto.merlin.keystore.type", 
keystoreType);
+        prop2.put("org.apache.ws.security.crypto.merlin.file", 
keyStoreFile.getAbsolutePath());
+        prop2.put("org.apache.ws.security.crypto.merlin.keystore.password", 
keystorePassword);
+        encrCryptoConfig.setProp(prop2);
+
+        rc.setEncrCryptoConfig(encrCryptoConfig);
+
+        policy.addAssertion(rc);
+
+        return policy;
+    }
+
     public static String isPossibleToCreateService(String servicePath) {
         String success = "OK";
 

Modified: 
trunk/mashup/java/modules/javascriptdeployer/src/org/wso2/mashup/deployer/JSDeployer.java
==============================================================================
--- 
trunk/mashup/java/modules/javascriptdeployer/src/org/wso2/mashup/deployer/JSDeployer.java
   (original)
+++ 
trunk/mashup/java/modules/javascriptdeployer/src/org/wso2/mashup/deployer/JSDeployer.java
   Tue Jan 15 08:34:49 2008
@@ -146,7 +146,7 @@
             AxisServiceGroup serviceGroup = new AxisServiceGroup(axisConfig);
             
serviceGroup.setServiceGroupClassLoader(deploymentFileData.getClassLoader());
             ArrayList serviceList = processService(deploymentFileData, 
serviceGroup,
-                                                   configCtx);
+                                                   configCtx);                 
                                                          
             if (serviceList != null) {
                 DeploymentEngine.addServiceGroup(serviceGroup, serviceList, 
deploymentFileData
                         .getFile().toURL(), deploymentFileData, axisConfig);

Modified: trunk/mashup/java/modules/www/signin.jsp
==============================================================================
--- trunk/mashup/java/modules/www/signin.jsp    (original)
+++ trunk/mashup/java/modules/www/signin.jsp    Tue Jan 15 08:34:49 2008
@@ -14,16 +14,13 @@
  * limitations under the License.
 --%>
 <%@ page errorPage="error.jsp" %>
-<%@ page import="com.sun.syndication.feed.synd.SyndContent"
+<%@ page import="com.sun.syndication.feed.synd.*"
         %>
-<%@ page import="com.sun.syndication.feed.synd.SyndContentImpl" %>
-<%@ page import="com.sun.syndication.feed.synd.SyndEntry" %>
-<%@ page import="com.sun.syndication.feed.synd.SyndEntryImpl" %>
-<%@ page import="com.sun.syndication.feed.synd.SyndFeed" %>
-<%@ page import="com.sun.syndication.feed.synd.SyndFeedImpl" %>
 <%@ page import="com.sun.syndication.io.SyndFeedOutput" %>
 <%@ page import="org.apache.axis2.context.ConfigurationContext" %>
 <%@ page import="org.wso2.mashup.MashupConstants" %>
+<%@ page import="org.wso2.mashup.MashupFault" %>
+<%@ page import="org.wso2.mashup.utils.MashupUtils" %>
 <%@ page import="org.wso2.mashup.utils.QueryResult" %>
 <%@ page import="org.wso2.mashup.utils.QueryResults" %>
 <%@ page import="org.wso2.mashup.webapp.identity.InfoCardHandler" %>
@@ -33,12 +30,7 @@
 <%@ page import="org.wso2.mashup.webapp.userprofile.UserQuery" %>
 <%@ page import="org.wso2.mashup.webapp.utils.QueryParamUtils" %>
 <%@ page import="org.wso2.mashup.webapp.utils.RegistryUtils" %>
-<%@ page import="org.wso2.registry.Comment" %>
-<%@ page import="org.wso2.registry.Registry" %>
-<%@ page import="org.wso2.registry.RegistryConstants" %>
-<%@ page import="org.wso2.registry.RegistryException" %>
-<%@ page import="org.wso2.registry.Resource" %>
-<%@ page import="org.wso2.registry.Tag" %>
+<%@ page import="org.wso2.registry.*" %>
 <%@ page import="org.wso2.registry.jdbc.JDBCRegistry" %>
 <%@ page import="org.wso2.registry.secure.SecureRegistry" %>
 <%@ page import="org.wso2.usermanager.Realm" %>
@@ -50,11 +42,7 @@
 <%@ page import="java.io.FileReader" %>
 <%@ page import="java.net.URL" %>
 <%@ page import="java.net.URLDecoder" %>
-<%@ page import="java.util.ArrayList" %>
-<%@ page import="java.util.Date" %>
-<%@ page import="java.util.Iterator" %>
-<%@ page import="java.util.List" %>
-<%@ page import="java.util.Map" %>
+<%@ page import="java.util.*" %>
 <%
     Registry registry = RegistryUtils.getRegistry(request);
     // required by header.jsp
@@ -88,8 +76,9 @@
 
                 Realm realm = (Realm) 
context.getAttribute(RegistryConstants.REGISTRY_REALM);
 
-                SecureRegistry secureRegistry = new 
SecureRegistry(nameProvided, passwordProvided,
-                                                                   
jdbcRegistry, realm);
+                MashupUtils.login(nameProvided, passwordProvided);
+
+                SecureRegistry secureRegistry = new 
SecureRegistry(nameProvided, jdbcRegistry, realm);
 
                 
request.getSession().setAttribute(MashupConstants.USER_REGISTRY, 
secureRegistry);
 
@@ -101,6 +90,8 @@
                 }
             } catch (RegistryException e) {
                 success = false;
+            }  catch (MashupFault e) {
+                success = false;
             }
         }
     }

_______________________________________________
Mashup-dev mailing list
[email protected]
http://www.wso2.org/cgi-bin/mailman/listinfo/mashup-dev

Reply via email to