1 package org.jahia.params.valves; 18 19 import org.jahia.pipelines.valves.Valve; 20 import org.jahia.pipelines.valves.ValveContext; 21 import org.jahia.pipelines.PipelineException; 22 import org.jahia.services.sites.JahiaSite; 23 import org.jahia.services.usermanager.JahiaUser; 24 import org.jahia.services.webdav.JahiaUserWrapper; 25 import org.jahia.params.ParamBean; 26 import org.jahia.registries.ServicesRegistry; 27 import org.jahia.exceptions.JahiaException; 28 import sun.misc.BASE64Decoder; 29 30 import javax.servlet.http.HttpServletRequest ; 31 import java.io.IOException ; 32 33 40 public class HttpBasicAuthValveImpl implements Valve { 41 public HttpBasicAuthValveImpl() { 42 } 43 44 public void invoke(Object context, ValveContext valveContext) throws PipelineException { 45 ParamBean processingContext = (ParamBean) context; 46 HttpServletRequest request = ((ParamBean)processingContext).getRequest(); 47 String auth = request.getHeader("Authorization"); 48 if (auth != null) { 49 try { 50 auth = auth.substring(6).trim(); 51 BASE64Decoder decoder = new BASE64Decoder(); 52 String cred = new String (decoder.decodeBuffer(auth)); 53 int colonInd = cred.indexOf(':'); 54 String user = cred.substring(0,colonInd); 55 String pass = cred.substring(colonInd+1); 56 57 JahiaSite site = (JahiaSite) request.getSession().getAttribute(ParamBean.SESSION_SITE); 58 JahiaUser jahiaUser = null; 59 jahiaUser = ServicesRegistry.getInstance().getJahiaSiteUserManagerService().getMember(site.getID(), user); 60 if (jahiaUser != null) { 61 if (jahiaUser.verifyPassword(pass)) { 62 processingContext.setTheUser(jahiaUser); 63 return; 64 } 65 } 66 } catch (Exception e) { 67 } 68 } 69 valveContext.invokeNext(context); 70 } 71 72 public void initialize() { 73 } 74 } 75 | Popular Tags |