1b28a5538SAdam Hornacek /* 2b28a5538SAdam Hornacek * CDDL HEADER START 3b28a5538SAdam Hornacek * 4b28a5538SAdam Hornacek * The contents of this file are subject to the terms of the 5b28a5538SAdam Hornacek * Common Development and Distribution License (the "License"). 6b28a5538SAdam Hornacek * You may not use this file except in compliance with the License. 7b28a5538SAdam Hornacek * 8b28a5538SAdam Hornacek * See LICENSE.txt included in this distribution for the specific 9b28a5538SAdam Hornacek * language governing permissions and limitations under the License. 10b28a5538SAdam Hornacek * 11b28a5538SAdam Hornacek * When distributing Covered Code, include this CDDL HEADER in each 12b28a5538SAdam Hornacek * file and include the License file at LICENSE.txt. 13b28a5538SAdam Hornacek * If applicable, add the following below this CDDL HEADER, with the 14b28a5538SAdam Hornacek * fields enclosed by brackets "[]" replaced with your own identifying 15b28a5538SAdam Hornacek * information: Portions Copyright [yyyy] [name of copyright owner] 16b28a5538SAdam Hornacek * 17b28a5538SAdam Hornacek * CDDL HEADER END 18b28a5538SAdam Hornacek */ 19b28a5538SAdam Hornacek 20b28a5538SAdam Hornacek /* 215d9f3aa0SAdam Hornáček * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved. 22b28a5538SAdam Hornacek */ 23b28a5538SAdam Hornacek package opengrok.auth.plugin.util; 24b28a5538SAdam Hornacek 25aa6abf42SAdam Hornacek import jakarta.servlet.AsyncContext; 26aa6abf42SAdam Hornacek import jakarta.servlet.DispatcherType; 27aa6abf42SAdam Hornacek import jakarta.servlet.RequestDispatcher; 28aa6abf42SAdam Hornacek import jakarta.servlet.ServletContext; 29aa6abf42SAdam Hornacek import jakarta.servlet.ServletInputStream; 30aa6abf42SAdam Hornacek import jakarta.servlet.ServletRequest; 31aa6abf42SAdam Hornacek import jakarta.servlet.ServletResponse; 32aa6abf42SAdam Hornacek import jakarta.servlet.http.Cookie; 33aa6abf42SAdam Hornacek import jakarta.servlet.http.HttpServletRequest; 34aa6abf42SAdam Hornacek import jakarta.servlet.http.HttpServletResponse; 35aa6abf42SAdam Hornacek import jakarta.servlet.http.HttpSession; 36aa6abf42SAdam Hornacek import jakarta.servlet.http.HttpUpgradeHandler; 37aa6abf42SAdam Hornacek import jakarta.servlet.http.Part; 38aa6abf42SAdam Hornacek 39b28a5538SAdam Hornacek import java.io.BufferedReader; 40b28a5538SAdam Hornacek import java.io.IOException; 41b28a5538SAdam Hornacek import java.io.UnsupportedEncodingException; 42b28a5538SAdam Hornacek import java.security.Principal; 43b28a5538SAdam Hornacek import java.util.Base64; 44b28a5538SAdam Hornacek import java.util.Collection; 45b28a5538SAdam Hornacek import java.util.Collections; 46b28a5538SAdam Hornacek import java.util.Enumeration; 47b28a5538SAdam Hornacek import java.util.HashMap; 48b28a5538SAdam Hornacek import java.util.Locale; 49b28a5538SAdam Hornacek import java.util.Map; 50b28a5538SAdam Hornacek 51b28a5538SAdam Hornacek public class DummyHttpServletRequestUser implements HttpServletRequest { 52b28a5538SAdam Hornacek 53b28a5538SAdam Hornacek private final Map<String, String> headers = new HashMap<>(); 54b28a5538SAdam Hornacek private final Map<String, Object> attrs = new HashMap<>(); 55*c6f0939bSAdam Hornacek private final HttpSession sessions = new HttpSession() { 56b28a5538SAdam Hornacek 57b28a5538SAdam Hornacek private final Map<String, Object> attrs = new HashMap<>(); 58b28a5538SAdam Hornacek 59b28a5538SAdam Hornacek @Override 60b28a5538SAdam Hornacek public long getCreationTime() { 61b28a5538SAdam Hornacek return 0; 62b28a5538SAdam Hornacek } 63b28a5538SAdam Hornacek 64b28a5538SAdam Hornacek @Override 65b28a5538SAdam Hornacek public String getId() { 66b28a5538SAdam Hornacek return "abcd"; 67b28a5538SAdam Hornacek } 68b28a5538SAdam Hornacek 69b28a5538SAdam Hornacek @Override 70b28a5538SAdam Hornacek public long getLastAccessedTime() { 71b28a5538SAdam Hornacek return 0; 72b28a5538SAdam Hornacek } 73b28a5538SAdam Hornacek 74b28a5538SAdam Hornacek @Override 75b28a5538SAdam Hornacek public ServletContext getServletContext() { 76b28a5538SAdam Hornacek return (ServletContext) DummyHttpServletRequestUser.this; 77b28a5538SAdam Hornacek } 78b28a5538SAdam Hornacek 79b28a5538SAdam Hornacek @Override 80b28a5538SAdam Hornacek public void setMaxInactiveInterval(int i) { 81b28a5538SAdam Hornacek } 82b28a5538SAdam Hornacek 83b28a5538SAdam Hornacek @Override 84b28a5538SAdam Hornacek public int getMaxInactiveInterval() { 85b28a5538SAdam Hornacek return 3600; 86b28a5538SAdam Hornacek } 87b28a5538SAdam Hornacek 88b28a5538SAdam Hornacek @Override 89b28a5538SAdam Hornacek @SuppressWarnings("deprecation") 90aa6abf42SAdam Hornacek public jakarta.servlet.http.HttpSessionContext getSessionContext() { 91b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 92b28a5538SAdam Hornacek } 93b28a5538SAdam Hornacek 94b28a5538SAdam Hornacek @Override 95b28a5538SAdam Hornacek public Object getAttribute(String string) { 96b28a5538SAdam Hornacek return attrs.get(string); 97b28a5538SAdam Hornacek } 98b28a5538SAdam Hornacek 99b28a5538SAdam Hornacek @Override 100b28a5538SAdam Hornacek @SuppressWarnings("deprecation") 101b28a5538SAdam Hornacek public Object getValue(String string) { 102b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 103b28a5538SAdam Hornacek } 104b28a5538SAdam Hornacek 105b28a5538SAdam Hornacek @Override 106b28a5538SAdam Hornacek public Enumeration<String> getAttributeNames() { 107b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 108b28a5538SAdam Hornacek } 109b28a5538SAdam Hornacek 110b28a5538SAdam Hornacek @Override 111b28a5538SAdam Hornacek @SuppressWarnings("deprecation") 112b28a5538SAdam Hornacek public String[] getValueNames() { 113b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 114b28a5538SAdam Hornacek } 115b28a5538SAdam Hornacek 116b28a5538SAdam Hornacek @Override 117b28a5538SAdam Hornacek public void setAttribute(String string, Object o) { 118b28a5538SAdam Hornacek attrs.put(string, o); 119b28a5538SAdam Hornacek } 120b28a5538SAdam Hornacek 121b28a5538SAdam Hornacek @Override 122b28a5538SAdam Hornacek @SuppressWarnings("deprecation") 123b28a5538SAdam Hornacek public void putValue(String string, Object o) { 124b28a5538SAdam Hornacek } 125b28a5538SAdam Hornacek 126b28a5538SAdam Hornacek @Override 127b28a5538SAdam Hornacek public void removeAttribute(String string) { 128b28a5538SAdam Hornacek attrs.remove(string); 129b28a5538SAdam Hornacek } 130b28a5538SAdam Hornacek 131b28a5538SAdam Hornacek @Override 132b28a5538SAdam Hornacek @SuppressWarnings("deprecation") 133b28a5538SAdam Hornacek public void removeValue(String string) { 134b28a5538SAdam Hornacek } 135b28a5538SAdam Hornacek 136b28a5538SAdam Hornacek @Override 137b28a5538SAdam Hornacek public void invalidate() { 138b28a5538SAdam Hornacek } 139b28a5538SAdam Hornacek 140b28a5538SAdam Hornacek @Override 141b28a5538SAdam Hornacek public boolean isNew() { 142b28a5538SAdam Hornacek return true; 143b28a5538SAdam Hornacek } 144b28a5538SAdam Hornacek }; 145b28a5538SAdam Hornacek 146b28a5538SAdam Hornacek @Override getAuthType()147b28a5538SAdam Hornacek public String getAuthType() { 148b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 149b28a5538SAdam Hornacek } 150b28a5538SAdam Hornacek 151b28a5538SAdam Hornacek @Override getCookies()152b28a5538SAdam Hornacek public Cookie[] getCookies() { 153b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 154b28a5538SAdam Hornacek } 155b28a5538SAdam Hornacek 156b28a5538SAdam Hornacek @Override getDateHeader(String string)157b28a5538SAdam Hornacek public long getDateHeader(String string) { 158b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 159b28a5538SAdam Hornacek } 160b28a5538SAdam Hornacek setHeader(String string, String value)161b28a5538SAdam Hornacek public void setHeader(String string, String value) { 162b28a5538SAdam Hornacek headers.put(string, value); 163b28a5538SAdam Hornacek } 164b28a5538SAdam Hornacek 165b28a5538SAdam Hornacek @Override getHeader(String string)166b28a5538SAdam Hornacek public String getHeader(String string) { 167b28a5538SAdam Hornacek return headers.get(string); 168b28a5538SAdam Hornacek } 169b28a5538SAdam Hornacek 170b28a5538SAdam Hornacek @Override getHeaders(String string)171b28a5538SAdam Hornacek public Enumeration<String> getHeaders(String string) { 172b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 173b28a5538SAdam Hornacek } 174b28a5538SAdam Hornacek 175b28a5538SAdam Hornacek @Override getHeaderNames()176b28a5538SAdam Hornacek public Enumeration<String> getHeaderNames() { 177b28a5538SAdam Hornacek return Collections.enumeration(headers.keySet()); 178b28a5538SAdam Hornacek } 179b28a5538SAdam Hornacek 180b28a5538SAdam Hornacek @Override getIntHeader(String string)181b28a5538SAdam Hornacek public int getIntHeader(String string) { 182b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 183b28a5538SAdam Hornacek } 184b28a5538SAdam Hornacek 185b28a5538SAdam Hornacek @Override getMethod()186b28a5538SAdam Hornacek public String getMethod() { 187b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 188b28a5538SAdam Hornacek } 189b28a5538SAdam Hornacek 190b28a5538SAdam Hornacek @Override getPathInfo()191b28a5538SAdam Hornacek public String getPathInfo() { 192b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 193b28a5538SAdam Hornacek } 194b28a5538SAdam Hornacek 195b28a5538SAdam Hornacek @Override getPathTranslated()196b28a5538SAdam Hornacek public String getPathTranslated() { 197b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 198b28a5538SAdam Hornacek } 199b28a5538SAdam Hornacek 200b28a5538SAdam Hornacek @Override getContextPath()201b28a5538SAdam Hornacek public String getContextPath() { 202b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 203b28a5538SAdam Hornacek } 204b28a5538SAdam Hornacek 205b28a5538SAdam Hornacek @Override getQueryString()206b28a5538SAdam Hornacek public String getQueryString() { 207b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 208b28a5538SAdam Hornacek } 209b28a5538SAdam Hornacek 210b28a5538SAdam Hornacek @Override getRemoteUser()211b28a5538SAdam Hornacek public String getRemoteUser() { 212b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 213b28a5538SAdam Hornacek } 214b28a5538SAdam Hornacek 215b28a5538SAdam Hornacek @Override isUserInRole(String string)216b28a5538SAdam Hornacek public boolean isUserInRole(String string) { 217b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 218b28a5538SAdam Hornacek } 219b28a5538SAdam Hornacek 220b28a5538SAdam Hornacek @Override getUserPrincipal()221b28a5538SAdam Hornacek public Principal getUserPrincipal() { 222b28a5538SAdam Hornacek String authHeader = getHeader("authorization"); 223b28a5538SAdam Hornacek if (authHeader == null) { 224b28a5538SAdam Hornacek return null; 225b28a5538SAdam Hornacek } 226b28a5538SAdam Hornacek 227b28a5538SAdam Hornacek if (!authHeader.startsWith("Basic")) { 228b28a5538SAdam Hornacek return null; 229b28a5538SAdam Hornacek } 230b28a5538SAdam Hornacek 231b28a5538SAdam Hornacek String encodedValue = authHeader.split(" ")[1]; 232b28a5538SAdam Hornacek Base64.Decoder decoder = Base64.getDecoder(); 233b28a5538SAdam Hornacek String username = new String(decoder.decode(encodedValue)).split(":")[0]; 234*c6f0939bSAdam Hornacek return () -> username; 235b28a5538SAdam Hornacek } 236b28a5538SAdam Hornacek 237b28a5538SAdam Hornacek @Override getRequestedSessionId()238b28a5538SAdam Hornacek public String getRequestedSessionId() { 239b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 240b28a5538SAdam Hornacek } 241b28a5538SAdam Hornacek 242b28a5538SAdam Hornacek @Override getRequestURI()243b28a5538SAdam Hornacek public String getRequestURI() { 244b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 245b28a5538SAdam Hornacek } 246b28a5538SAdam Hornacek 247b28a5538SAdam Hornacek @Override getRequestURL()248b28a5538SAdam Hornacek public StringBuffer getRequestURL() { 249b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 250b28a5538SAdam Hornacek } 251b28a5538SAdam Hornacek 252b28a5538SAdam Hornacek @Override getServletPath()253b28a5538SAdam Hornacek public String getServletPath() { 254b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 255b28a5538SAdam Hornacek } 256b28a5538SAdam Hornacek 257b28a5538SAdam Hornacek @Override getSession(boolean bln)258b28a5538SAdam Hornacek public HttpSession getSession(boolean bln) { 259b28a5538SAdam Hornacek return sessions; 260b28a5538SAdam Hornacek } 261b28a5538SAdam Hornacek 262b28a5538SAdam Hornacek @Override getSession()263b28a5538SAdam Hornacek public HttpSession getSession() { 264b28a5538SAdam Hornacek return sessions; 265b28a5538SAdam Hornacek } 266b28a5538SAdam Hornacek 267b28a5538SAdam Hornacek @Override changeSessionId()268b28a5538SAdam Hornacek public String changeSessionId() { 269b28a5538SAdam Hornacek return null; 270b28a5538SAdam Hornacek } 271b28a5538SAdam Hornacek 272b28a5538SAdam Hornacek @Override isRequestedSessionIdValid()273b28a5538SAdam Hornacek public boolean isRequestedSessionIdValid() { 274b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 275b28a5538SAdam Hornacek } 276b28a5538SAdam Hornacek 277b28a5538SAdam Hornacek @Override isRequestedSessionIdFromCookie()278b28a5538SAdam Hornacek public boolean isRequestedSessionIdFromCookie() { 279b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 280b28a5538SAdam Hornacek } 281b28a5538SAdam Hornacek 282b28a5538SAdam Hornacek @Override isRequestedSessionIdFromURL()283b28a5538SAdam Hornacek public boolean isRequestedSessionIdFromURL() { 284b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 285b28a5538SAdam Hornacek } 286b28a5538SAdam Hornacek 287b28a5538SAdam Hornacek @Override 288b28a5538SAdam Hornacek @Deprecated isRequestedSessionIdFromUrl()289b28a5538SAdam Hornacek public boolean isRequestedSessionIdFromUrl() { 290b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 291b28a5538SAdam Hornacek } 292b28a5538SAdam Hornacek 293b28a5538SAdam Hornacek @Override authenticate(HttpServletResponse httpServletResponse)294b28a5538SAdam Hornacek public boolean authenticate(HttpServletResponse httpServletResponse) { 295b28a5538SAdam Hornacek return false; 296b28a5538SAdam Hornacek } 297b28a5538SAdam Hornacek 298b28a5538SAdam Hornacek @Override login(String s, String s1)299b28a5538SAdam Hornacek public void login(String s, String s1) { 300b28a5538SAdam Hornacek 301b28a5538SAdam Hornacek } 302b28a5538SAdam Hornacek 303b28a5538SAdam Hornacek @Override logout()304b28a5538SAdam Hornacek public void logout() { 305b28a5538SAdam Hornacek 306b28a5538SAdam Hornacek } 307b28a5538SAdam Hornacek 308b28a5538SAdam Hornacek @Override getParts()309b28a5538SAdam Hornacek public Collection<Part> getParts() { 310b28a5538SAdam Hornacek return null; 311b28a5538SAdam Hornacek } 312b28a5538SAdam Hornacek 313b28a5538SAdam Hornacek @Override getPart(String s)314b28a5538SAdam Hornacek public Part getPart(String s) { 315b28a5538SAdam Hornacek return null; 316b28a5538SAdam Hornacek } 317b28a5538SAdam Hornacek 318b28a5538SAdam Hornacek @Override upgrade(Class<T> aClass)319b28a5538SAdam Hornacek public <T extends HttpUpgradeHandler> T upgrade(Class<T> aClass) { 320b28a5538SAdam Hornacek return null; 321b28a5538SAdam Hornacek } 322b28a5538SAdam Hornacek 323b28a5538SAdam Hornacek @Override getAttribute(String string)324b28a5538SAdam Hornacek public Object getAttribute(String string) { 325b28a5538SAdam Hornacek return attrs.get(string); 326b28a5538SAdam Hornacek } 327b28a5538SAdam Hornacek 328b28a5538SAdam Hornacek @Override getAttributeNames()329b28a5538SAdam Hornacek public Enumeration<String> getAttributeNames() { 330b28a5538SAdam Hornacek return Collections.enumeration(attrs.keySet()); 331b28a5538SAdam Hornacek } 332b28a5538SAdam Hornacek 333b28a5538SAdam Hornacek @Override getCharacterEncoding()334b28a5538SAdam Hornacek public String getCharacterEncoding() { 335b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 336b28a5538SAdam Hornacek } 337b28a5538SAdam Hornacek 338b28a5538SAdam Hornacek @Override setCharacterEncoding(String string)339b28a5538SAdam Hornacek public void setCharacterEncoding(String string) throws UnsupportedEncodingException { 340b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 341b28a5538SAdam Hornacek } 342b28a5538SAdam Hornacek 343b28a5538SAdam Hornacek @Override getContentLength()344b28a5538SAdam Hornacek public int getContentLength() { 345b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 346b28a5538SAdam Hornacek } 347b28a5538SAdam Hornacek 348b28a5538SAdam Hornacek @Override getContentLengthLong()349b28a5538SAdam Hornacek public long getContentLengthLong() { 350b28a5538SAdam Hornacek return 0; 351b28a5538SAdam Hornacek } 352b28a5538SAdam Hornacek 353b28a5538SAdam Hornacek @Override getContentType()354b28a5538SAdam Hornacek public String getContentType() { 355b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 356b28a5538SAdam Hornacek } 357b28a5538SAdam Hornacek 358b28a5538SAdam Hornacek @Override getInputStream()359b28a5538SAdam Hornacek public ServletInputStream getInputStream() throws IOException { 360b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 361b28a5538SAdam Hornacek } 362b28a5538SAdam Hornacek 363b28a5538SAdam Hornacek @Override getParameter(String string)364b28a5538SAdam Hornacek public String getParameter(String string) { 365b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 366b28a5538SAdam Hornacek } 367b28a5538SAdam Hornacek 368b28a5538SAdam Hornacek @Override getParameterNames()369b28a5538SAdam Hornacek public Enumeration<String> getParameterNames() { 370b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 371b28a5538SAdam Hornacek } 372b28a5538SAdam Hornacek 373b28a5538SAdam Hornacek @Override getParameterValues(String string)374b28a5538SAdam Hornacek public String[] getParameterValues(String string) { 375b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 376b28a5538SAdam Hornacek } 377b28a5538SAdam Hornacek 378b28a5538SAdam Hornacek @Override getParameterMap()379b28a5538SAdam Hornacek public Map<String, String[]> getParameterMap() { 380b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 381b28a5538SAdam Hornacek } 382b28a5538SAdam Hornacek 383b28a5538SAdam Hornacek @Override getProtocol()384b28a5538SAdam Hornacek public String getProtocol() { 385b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 386b28a5538SAdam Hornacek } 387b28a5538SAdam Hornacek 388b28a5538SAdam Hornacek @Override getScheme()389b28a5538SAdam Hornacek public String getScheme() { 390b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 391b28a5538SAdam Hornacek } 392b28a5538SAdam Hornacek 393b28a5538SAdam Hornacek @Override getServerName()394b28a5538SAdam Hornacek public String getServerName() { 395b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 396b28a5538SAdam Hornacek } 397b28a5538SAdam Hornacek 398b28a5538SAdam Hornacek @Override getServerPort()399b28a5538SAdam Hornacek public int getServerPort() { 400b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 401b28a5538SAdam Hornacek } 402b28a5538SAdam Hornacek 403b28a5538SAdam Hornacek @Override getReader()404b28a5538SAdam Hornacek public BufferedReader getReader() throws IOException { 405b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 406b28a5538SAdam Hornacek } 407b28a5538SAdam Hornacek 408b28a5538SAdam Hornacek @Override getRemoteAddr()409b28a5538SAdam Hornacek public String getRemoteAddr() { 410b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 411b28a5538SAdam Hornacek } 412b28a5538SAdam Hornacek 413b28a5538SAdam Hornacek @Override getRemoteHost()414b28a5538SAdam Hornacek public String getRemoteHost() { 415b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 416b28a5538SAdam Hornacek } 417b28a5538SAdam Hornacek 418b28a5538SAdam Hornacek @Override setAttribute(String name, Object o)419b28a5538SAdam Hornacek public void setAttribute(String name, Object o) { 420b28a5538SAdam Hornacek attrs.put(name, o); 421b28a5538SAdam Hornacek } 422b28a5538SAdam Hornacek 423b28a5538SAdam Hornacek @Override removeAttribute(String name)424b28a5538SAdam Hornacek public void removeAttribute(String name) { 425b28a5538SAdam Hornacek attrs.remove(name); 426b28a5538SAdam Hornacek } 427b28a5538SAdam Hornacek 428b28a5538SAdam Hornacek @Override getLocale()429b28a5538SAdam Hornacek public Locale getLocale() { 430b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 431b28a5538SAdam Hornacek } 432b28a5538SAdam Hornacek 433b28a5538SAdam Hornacek @Override getLocales()434b28a5538SAdam Hornacek public Enumeration<Locale> getLocales() { 435b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 436b28a5538SAdam Hornacek } 437b28a5538SAdam Hornacek 438b28a5538SAdam Hornacek @Override isSecure()439b28a5538SAdam Hornacek public boolean isSecure() { 440b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 441b28a5538SAdam Hornacek } 442b28a5538SAdam Hornacek 443b28a5538SAdam Hornacek @Override getRequestDispatcher(String string)444b28a5538SAdam Hornacek public RequestDispatcher getRequestDispatcher(String string) { 445b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 446b28a5538SAdam Hornacek } 447b28a5538SAdam Hornacek 448b28a5538SAdam Hornacek @Override 449b28a5538SAdam Hornacek @Deprecated getRealPath(String string)450b28a5538SAdam Hornacek public String getRealPath(String string) { 451b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 452b28a5538SAdam Hornacek } 453b28a5538SAdam Hornacek 454b28a5538SAdam Hornacek @Override getRemotePort()455b28a5538SAdam Hornacek public int getRemotePort() { 456b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 457b28a5538SAdam Hornacek } 458b28a5538SAdam Hornacek 459b28a5538SAdam Hornacek @Override getLocalName()460b28a5538SAdam Hornacek public String getLocalName() { 461b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 462b28a5538SAdam Hornacek } 463b28a5538SAdam Hornacek 464b28a5538SAdam Hornacek @Override getLocalAddr()465b28a5538SAdam Hornacek public String getLocalAddr() { 466b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 467b28a5538SAdam Hornacek } 468b28a5538SAdam Hornacek 469b28a5538SAdam Hornacek @Override getLocalPort()470b28a5538SAdam Hornacek public int getLocalPort() { 471b28a5538SAdam Hornacek throw new UnsupportedOperationException("Not supported yet."); 472b28a5538SAdam Hornacek } 473b28a5538SAdam Hornacek 474b28a5538SAdam Hornacek @Override getServletContext()475b28a5538SAdam Hornacek public ServletContext getServletContext() { 476b28a5538SAdam Hornacek return null; 477b28a5538SAdam Hornacek } 478b28a5538SAdam Hornacek 479b28a5538SAdam Hornacek @Override startAsync()480b28a5538SAdam Hornacek public AsyncContext startAsync() throws IllegalStateException { 481b28a5538SAdam Hornacek return null; 482b28a5538SAdam Hornacek } 483b28a5538SAdam Hornacek 484b28a5538SAdam Hornacek @Override startAsync(ServletRequest servletRequest, ServletResponse servletResponse)485b28a5538SAdam Hornacek public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse) throws IllegalStateException { 486b28a5538SAdam Hornacek return null; 487b28a5538SAdam Hornacek } 488b28a5538SAdam Hornacek 489b28a5538SAdam Hornacek @Override isAsyncStarted()490b28a5538SAdam Hornacek public boolean isAsyncStarted() { 491b28a5538SAdam Hornacek return false; 492b28a5538SAdam Hornacek } 493b28a5538SAdam Hornacek 494b28a5538SAdam Hornacek @Override isAsyncSupported()495b28a5538SAdam Hornacek public boolean isAsyncSupported() { 496b28a5538SAdam Hornacek return false; 497b28a5538SAdam Hornacek } 498b28a5538SAdam Hornacek 499b28a5538SAdam Hornacek @Override getAsyncContext()500b28a5538SAdam Hornacek public AsyncContext getAsyncContext() { 501b28a5538SAdam Hornacek return null; 502b28a5538SAdam Hornacek } 503b28a5538SAdam Hornacek 504b28a5538SAdam Hornacek @Override getDispatcherType()505b28a5538SAdam Hornacek public DispatcherType getDispatcherType() { 506b28a5538SAdam Hornacek return null; 507b28a5538SAdam Hornacek } 508b28a5538SAdam Hornacek } 509