Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/ConfigAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/ConfigAction.java,v diff -u -r1.2 -r1.2.2.1 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/ConfigAction.java 31 Oct 2006 04:18:11 -0000 1.2 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/ConfigAction.java 19 Apr 2007 06:51:39 -0000 1.2.2.1 @@ -22,22 +22,24 @@ */ package org.lamsfoundation.lams.admin.web; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.commons.beanutils.BeanUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.DynaActionForm; import org.lamsfoundation.lams.util.Configuration; -import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.util.ConfigurationKeys; import org.lamsfoundation.lams.web.action.LamsDispatchAction; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; @@ -57,6 +59,13 @@ public class ConfigAction extends LamsDispatchAction { private static Configuration configurationService; + private String LOGIN_PAGE_PATH = Configuration + .get(ConfigurationKeys.LAMS_EAR_DIR) + + File.separatorChar + + "lams-central.war" + + File.separatorChar + + "login.jsp"; + private static Logger log = Logger.getLogger(ConfigAction.class); private Configuration getConfiguration() { if (configurationService == null) { @@ -93,10 +102,44 @@ for(int i=0; i - Shib-Person-commonName - Shib-Person-commonName - Shib-Person-commonName - Shib-Person-commonName java:/jdbc/lams-ds select password from lams_user where login=? Index: lams_central/src/java/org/lamsfoundation/lams/web/ShibLoginServlet.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/Attic/ShibLoginServlet.java,v diff -u -r1.1.2.2 -r1.1.2.3 --- lams_central/src/java/org/lamsfoundation/lams/web/ShibLoginServlet.java 19 Apr 2007 03:02:45 -0000 1.1.2.2 +++ lams_central/src/java/org/lamsfoundation/lams/web/ShibLoginServlet.java 19 Apr 2007 06:51:38 -0000 1.1.2.3 @@ -33,6 +33,9 @@ import org.lamsfoundation.lams.usermanagement.AuthenticationMethod; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.service.UserManagementService; +import org.lamsfoundation.lams.util.Configuration; +import org.lamsfoundation.lams.util.ConfigurationKeys; +import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; /** @@ -46,6 +49,7 @@ private static Logger log = Logger.getLogger(ShibLoginServlet.class); private static UserManagementService service = null; + private static Configuration configurationService = null; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { @@ -55,6 +59,12 @@ .getRequiredWebApplicationContext(getServletContext()).getBean("userManagementServiceTarget"); } + if (configurationService == null) { + configurationService = (Configuration)WebApplicationContextUtils + .getRequiredWebApplicationContext(getServletContext()) + .getBean("configurationService"); + } + // debug request headers Enumeration headers = request.getHeaderNames(); while (headers.hasMoreElements()) { @@ -65,12 +75,11 @@ log.debug("request.getPathInfo: "+request.getPathInfo()); log.debug("request.getContextPath: "+request.getContextPath()); - // TODO use header name based on sysadmin's configuration - String username = request.getHeader("LAMS-Login"); + // get header name based on sysadmin's configuration + String username = request.getHeader(Configuration.get(ConfigurationKeys.SHIB_ATTR_LOGIN)); if (username != null && username.trim().length()>0) { User user = service.getUserByLogin(username); if (user != null) { - // TODO check shib user matches lams user log.info("Shib username exists!"); // If user is a shib user, login if (user.getAuthenticationMethod().equals(service.findById(AuthenticationMethod.class, AuthenticationMethod.SHIBBOLETH))) { Index: lams_central/web/login.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_central/web/login.jsp,v diff -u -r1.26.2.3 -r1.26.2.4 --- lams_central/web/login.jsp 19 Apr 2007 03:02:45 -0000 1.26.2.3 +++ lams_central/web/login.jsp 19 Apr 2007 06:51:38 -0000 1.26.2.4 @@ -127,7 +127,7 @@
<% } %> - <% if (shibLoginExists == "false") { %> + <% if (shibLoginExists == "true") { %> Index: lams_common/db/sql/insert_unix_config_data.sql =================================================================== RCS file: /usr/local/cvsroot/lams_common/db/sql/Attic/insert_unix_config_data.sql,v diff -u -r1.8.2.2 -r1.8.2.3 --- lams_common/db/sql/insert_unix_config_data.sql 26 Mar 2007 02:15:11 -0000 1.8.2.2 +++ lams_common/db/sql/insert_unix_config_data.sql 19 Apr 2007 06:51:38 -0000 1.8.2.3 @@ -30,3 +30,7 @@ insert into lams_configuration (config_key, config_value) values ('DefaultHTMLTheme','defaultHTML'); insert into lams_configuration (config_key, config_value) values ('AllowDirectLessonLaunch','false'); insert into lams_configuration (config_key, config_value) values ('LAMS_Community_enable','false'); +insert into lams_configuration (config_key, config_value) values ('ShibAttrLogin','LAMS-Login'); +insert into lams_configuration (config_key, config_value) values ('ShibAttrFname','LAMS-Login'); +insert into lams_configuration (config_key, config_value) values ('ShibAttrLname','LAMS-Login'); +insert into lams_configuration (config_key, config_value) values ('ShibAttrRoles','LAMS-Roles'); Index: lams_common/db/sql/insert_windows_config_data.sql =================================================================== RCS file: /usr/local/cvsroot/lams_common/db/sql/Attic/insert_windows_config_data.sql,v diff -u -r1.12.2.2 -r1.12.2.3 --- lams_common/db/sql/insert_windows_config_data.sql 26 Mar 2007 02:15:11 -0000 1.12.2.2 +++ lams_common/db/sql/insert_windows_config_data.sql 19 Apr 2007 06:51:38 -0000 1.12.2.3 @@ -29,4 +29,8 @@ insert into lams_configuration (config_key, config_value) values ('DefaultFlashTheme','default'); insert into lams_configuration (config_key, config_value) values ('DefaultHTMLTheme','defaultHTML'); insert into lams_configuration (config_key, config_value) values ('AllowDirectLessonLaunch','false'); -insert into lams_configuration (config_key, config_value) values ('LAMS_Community_enable','false'); \ No newline at end of file +insert into lams_configuration (config_key, config_value) values ('LAMS_Community_enable','false'); +insert into lams_configuration (config_key, config_value) values ('ShibAttrLogin','LAMS-Login'); +insert into lams_configuration (config_key, config_value) values ('ShibAttrFname','LAMS-Login'); +insert into lams_configuration (config_key, config_value) values ('ShibAttrLname','LAMS-Login'); +insert into lams_configuration (config_key, config_value) values ('ShibAttrRoles','LAMS-Roles'); \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java,v diff -u -r1.23 -r1.23.2.1 --- lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java 17 Nov 2006 03:11:25 -0000 1.23 +++ lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java 19 Apr 2007 06:51:38 -0000 1.23.2.1 @@ -131,4 +131,12 @@ public static String ALLOW_DIRECT_LESSON_LAUNCH = "AllowDirectLessonLaunch"; public static String LAMS_COMMUNITY_ENABLE = "LAMS_Community_enable"; + + public static String SHIB_ATTR_LOGIN = "ShibAttrLogin"; + + public static String SHIB_ATTR_ROLES = "ShibAttrRoles"; + + public static String SHIB_ATTR_FNAME = "ShibAttrFname"; + + public static String SHIB_ATTR_LNAME = "ShibAttrLname"; } \ No newline at end of file