001/** 002 * Copyright 2005-2015 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.kuali.rice.krad.filter; 017 018import org.apache.commons.lang.StringUtils; 019import org.kuali.rice.krad.UserSession; 020import org.kuali.rice.krad.util.KRADConstants; 021 022import javax.servlet.Filter; 023import javax.servlet.FilterChain; 024import javax.servlet.FilterConfig; 025import javax.servlet.ServletException; 026import javax.servlet.ServletRequest; 027import javax.servlet.ServletResponse; 028import javax.servlet.http.HttpServletRequest; 029import javax.servlet.http.HttpServletRequestWrapper; 030import java.io.IOException; 031 032/** 033 * Filter for establishing login for load testing. 034 * 035 * <p>Note this should only be used for load testing!</p> 036 * 037 * @author Kuali Rice Team (rice.collab@kuali.org) 038 */ 039public class TestingLoginFilter implements Filter { 040 041 @Override 042 public void init(FilterConfig filterConfig) throws ServletException { 043 044 } 045 046 /** 047 * Looks for a login user request parameter and establishs a user session for that user, then simply 048 * returns a login message. 049 * 050 * {@inheritDoc} 051 */ 052 @Override 053 public void doFilter(ServletRequest request, ServletResponse response, 054 FilterChain chain) throws IOException, ServletException { 055 HttpServletRequest httpServletRequest = (HttpServletRequest) request; 056 057 if (StringUtils.isBlank(request.getParameter("login_user"))) { 058 return; 059 } 060 061 final String user = request.getParameter("login_user"); 062 063 UserSession userSession = new UserSession(user); 064 httpServletRequest.getSession().setAttribute(KRADConstants.USER_SESSION_KEY, userSession); 065 066 // wrap the request with the signed in user 067 // UserLoginFilter and WebAuthenticationService will build the session 068 request = new HttpServletRequestWrapper(httpServletRequest) { 069 @Override 070 public String getRemoteUser() { 071 return user; 072 } 073 }; 074 075 response.getWriter().print("Login Successful."); 076 } 077 078 @Override 079 public void destroy() { 080 081 } 082}