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