Code Search for Developers
 
 
  

CredentialPortlet.java from GridBlocks at Krugle


Show CredentialPortlet.java syntax highlighted

/*
 * Copyright (c) 2005
 * Helsinki Institute of Physics
 * see LICENSE file for details
 *
 * CredentialPortlet.java
 * Created on 10.8.2005
 */
package fi.hip.gb.portlet;

import java.io.IOException;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.GenericPortlet;
import javax.portlet.PortletConfig;
import javax.portlet.PortletException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.WindowState;
import javax.portlet.WindowStateException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jboss.portal.common.util.Tools;
import org.jboss.portal.core.model.Role;
import org.jboss.portal.core.model.User;
import org.jboss.portal.core.modules.ModuleConstants;
import org.jboss.portal.core.modules.ModuleException;
import org.jboss.portal.core.modules.RoleModule;
import org.jboss.portal.core.modules.UserModule;
import org.jboss.portal.core.portlet.user.UserPortletConstants;

/**
 * Portal user account management and login/logout
 *
 * @author Antti Ahvenlampi
 * @version $Id: CredentialPortlet.java 483 2005-08-16 13:36:59Z ahvenlam $
 */
public class CredentialPortlet extends GenericPortlet {
	
	private static String VIEW_JSP;
	private static String REGISTER_JSP;
	
	private UserModule userModule;
	private RoleModule roleModule;
	
	private static final Log log = LogFactory.getLog(CredentialPortlet.class);
	
	public void init() throws PortletException {
		super.init();
		
		initEnv();
	}
	
	public void init(PortletConfig config) throws PortletException {
		super.init(config);
		
		initEnv();
	}
	
	private void initEnv() throws PortletException {
		VIEW_JSP = getInitParameter("VIEW_JSP");
		REGISTER_JSP = getInitParameter("REGISTER_JSP");
		
		try {
			userModule = (UserModule)new InitialContext().lookup(ModuleConstants.USERMODULE_JNDINAME);
	        roleModule = (RoleModule)new InitialContext().lookup(ModuleConstants.ROLEMODULE_JNDINAME);
	    } catch (NamingException e) {
	    	throw new PortletException(e);
	    }
	}

	public void doView(RenderRequest request, RenderResponse response) 
			throws PortletException, IOException {
		
		response.setContentType("text/html");
		if(request.getParameter("register") == null)
			getPortletContext().getRequestDispatcher(VIEW_JSP).include(request, response);
		else getPortletContext().getRequestDispatcher(REGISTER_JSP).include(request, response);
	}
	
	public void processAction(ActionRequest request, ActionResponse response)
			throws PortletException, IOException {
		
		if(request.getParameter("logout") != null) {
			((org.jboss.portlet.JBossActionRequest)request).signOut();
		} else if(request.getParameter("register") != null) {
			
			registerUser(request, response);
			
		}
	}
	
	private void registerUser(ActionRequest request, ActionResponse response) {
		String uname = request.getParameter("userID");
	    int nbErrors = 0;
	    if((uname == null) || (uname.length() == 0)) {
	       nbErrors++;
	       response.setRenderParameter("uname_error", "REGISTER_ERROR_INVALIDUSERNAME");
	    } else {
	       try {
	          User user = userModule.findUserByUserName(uname);
	          if(user != null) {
	             nbErrors++;
	             response.setRenderParameter("uname_error", "REGISTER_ERROR_EXISTINGUSERNAME");
	          }
	       } catch(IllegalArgumentException e) {
	          log.error("", e);
	       } catch(ModuleException e) {
	          // Ok the user does not exist yet
	       }
	    }

	    String pass1 = request.getParameter("passwd");
	    if((pass1 == null) || (pass1.length() == 0)) {
	       nbErrors++;
	       response.setRenderParameter("pass1_error", "REGISTER_ERROR_INVALIDPASSWORD1");
	    }

	    String pass2 = request.getParameter("repasswd");
	    if((pass2 == null) || (pass2.length() == 0)) {
	       nbErrors++;
	       response.setRenderParameter("pass2_error", "REGISTER_ERROR_INVALIDPASSWORD2");
	    } else if(!pass1.equals(pass2)) {
	       nbErrors++;
	       response.setRenderParameter("pass2_error", "REGISTER_ERROR_PASSWORDMISMATCH");
	    }

	    String realEmail = request.getParameter("mail");
	    // TODO: check mail validity

	    String proxyDN = request.getParameter("proxyDN");
	      
	    User user = null;
	    if(nbErrors == 0) {
	       try {
	          user = userModule.createUser(uname, Tools.md5AsHexString(pass1), realEmail);

              user.setRegistrationDate(new Date());
	          user.getProperties().put("proxyDN", proxyDN);
	          user.setEnabled(true);
	          	       
	          String defaultRole = getPortletConfig().getInitParameter(UserPortletConstants.DEFAULT_ROLE);
	          if(defaultRole != null) {
	        	  Set roleSet = new HashSet();
	        	  Role role = roleModule.findRoleByName(defaultRole);
	        	  if(role != null) {
	        		  roleSet.add(role);
	        		  user.setRoles(roleSet);
	        	  } else {
	        		  log.error("The role you specified as default role does not exist, check your portlet configuration");
	        	  }
	          } else {
	        	  log.info("You didn't specify a default role in the portlet init configuration, please refer to the documentation");
	          }
	       } catch(IllegalArgumentException e) {
	    	   log.error("Cannot create user " + uname, e);
	       } catch(ModuleException e) {
	    	   log.error("Cannot create user " + uname, e);
	       }
	       
	       try {
	    	   response.setWindowState(WindowState.NORMAL);
	       } catch(WindowStateException e) {
	    	   log.info(e);
	       }
	    } else {
	    	response.setRenderParameter("register", "register");
	    	response.setRenderParameter("userID", uname);
	    	response.setRenderParameter("mail", realEmail);
	    	response.setRenderParameter("proxyDN", proxyDN);
	    }
	}
}




See more files for this project here

GridBlocks

GridBlocks builds a grid application framework via easy-to-use building blocks in distributed environment. The framework offers components for Grid security, distributed storage, computing, and Portlet web interfaces.

Project homepage: http://sourceforge.net/projects/gridblocks
Programming language(s): Java,JSP,XML
License: other

  beans/
    JobSubmissionJobBean.java
    JobSubmissionSessionBean.java
    JobSubmissionViewBean.java
    ResultsBrowserResultBean.java
    ResultsBrowserViewBean.java
  disk/
    GlobalBean.java
    LocalBean.java
    UploadPortlet.java
  jobs/
    agent/
      AgentJob.java
    FlagDescription.java
    Job.java
  results/
    agent/
      AgentResult.java
      AgentResultFile.java
      AgentResultFinder.java
    Result.java
    ResultComparator.java
    ResultException.java
    ResultFile.java
    ResultFindController.java
    ResultFinder.java
  services/
    agent/
      AgentService.java
      AgentServiceFinder.java
    Service.java
    ServiceComparator.java
    ServiceException.java
    ServiceFindController.java
    ServiceFinder.java
  CredentialPortlet.java
  JobSubmissionPortlet.java
  LogRepositoryServlet.java
  MyRepositorySelector.java
  ResultsBrowserPortlet.java