package org.jboss.resteasy.plugins.server.tjws; import org.apache.commons.codec.binary.Base64; import org.jboss.resteasy.plugins.server.embedded.SecurityDomain; import org.jboss.resteasy.util.HttpHeaderNames; import org.jboss.resteasy.util.HttpResponseCodes; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.security.Principal; /** * @deprecated See resteasy-undertow module. */ @Deprecated public class TJWSRequestPreProcessor { private SecurityDomain domain; private String contextPath = ""; public TJWSRequestPreProcessor(SecurityDomain domain) { this.domain = domain; } public TJWSRequestPreProcessor() { } public void setContextPath(String contextPath) { if (contextPath == null) contextPath = ""; else if (contextPath.equals("/")) contextPath = ""; this.contextPath = contextPath; } public void setSecurityDomain(SecurityDomain domain) { this.domain = domain; } public HttpServletRequest preProcessRequest(HttpServletRequest request, HttpServletResponse response) throws IOException { if (domain != null) { String auth = request.getHeader(HttpHeaderNames.AUTHORIZATION); if (auth != null && auth.length() > 5) { String type = auth.substring(0, 5); type = type.toLowerCase(); if ("basic".equals(type)) { String cookie = auth.substring(6); cookie = new String(Base64.decodeBase64(cookie.getBytes())); String[] split = cookie.split(":"); //System.out.println("Authenticating user: " + split[0] + " passwd: " + split[1]); Principal user = null; try { user = domain.authenticate(split[0], split[1]); } catch (SecurityException e) { response.sendError(HttpResponseCodes.SC_UNAUTHORIZED); return null; } request = new AuthenticatedHttpServletRequest(request, domain, user, "BASIC", contextPath); } } } else { // fix bug in non-encoded getRequestURI and URL request = new PatchedHttpServletRequest(request, contextPath); } return request; } }