RewriteLog
diff --git a/lib/catalina-6.0.53.jar b/retired/libs/catalina-6.0.53.jar
similarity index 100%
rename from lib/catalina-6.0.53.jar
rename to retired/libs/catalina-6.0.53.jar
diff --git a/lib/gson-2.8.9.jar b/retired/libs/gson-2.8.9.jar
similarity index 100%
rename from lib/gson-2.8.9.jar
rename to retired/libs/gson-2.8.9.jar
diff --git a/lib/servlet-api-3.0.jar b/retired/libs/servlet-api-3.0.jar
similarity index 100%
rename from lib/servlet-api-3.0.jar
rename to retired/libs/servlet-api-3.0.jar
diff --git a/lib/urlrewrite-3.2.0.jar b/retired/libs/urlrewrite-3.2.0.jar
similarity index 100%
rename from lib/urlrewrite-3.2.0.jar
rename to retired/libs/urlrewrite-3.2.0.jar
diff --git a/src/opendap/aggregation/AggregationServlet.java b/src/opendap/aggregation/AggregationServlet.java
index 375087824..e00a22f45 100644
--- a/src/opendap/aggregation/AggregationServlet.java
+++ b/src/opendap/aggregation/AggregationServlet.java
@@ -45,11 +45,11 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.*;
import java.text.NumberFormat;
import java.util.Enumeration;
diff --git a/src/opendap/auth/ApacheIdP.java b/src/opendap/auth/ApacheIdP.java
index cde78fa1c..b0ba1178a 100644
--- a/src/opendap/auth/ApacheIdP.java
+++ b/src/opendap/auth/ApacheIdP.java
@@ -33,9 +33,9 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpSession;
import java.io.IOException;
/**
@@ -144,7 +144,7 @@ public boolean doLogin(HttpServletRequest request, HttpServletResponse response)
session.setAttribute(IdFilter.USER_PROFILE, up);
*/
- redirectUrl = (String) session.getAttribute(IdFilter.RETURN_TO_URL);
+ redirectUrl = Util.stringFromJson( (String) session.getAttribute(IdFilter.RETURN_TO_URL));
}
if(redirectUrl==null){
// Since the request may come from other deployment contexts we check the request for the context.
@@ -174,7 +174,7 @@ public void doLogout(HttpServletRequest request, HttpServletResponse response)
HttpSession session = request.getSession(false);
if( session != null )
{
- String returnToUrl = (String) session.getAttribute(IdFilter.RETURN_TO_URL);
+ String returnToUrl = Util.stringFromJson( (String) session.getAttribute(IdFilter.RETURN_TO_URL));
if(returnToUrl!=null)
redirectUrl = returnToUrl;
session.invalidate();
diff --git a/src/opendap/auth/AuthenticatedHttpRequest.java b/src/opendap/auth/AuthenticatedHttpRequest.java
index 79290c63f..9002f9592 100644
--- a/src/opendap/auth/AuthenticatedHttpRequest.java
+++ b/src/opendap/auth/AuthenticatedHttpRequest.java
@@ -26,8 +26,8 @@
package opendap.auth;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletRequestWrapper;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequestWrapper;
import java.security.Principal;
/**
diff --git a/src/opendap/auth/AuthenticationControls.java b/src/opendap/auth/AuthenticationControls.java
index fc86cb260..3e2cd907b 100644
--- a/src/opendap/auth/AuthenticationControls.java
+++ b/src/opendap/auth/AuthenticationControls.java
@@ -32,7 +32,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import java.security.Principal;
/**
diff --git a/src/opendap/auth/EarthDataLoginAccessToken.java b/src/opendap/auth/EarthDataLoginAccessToken.java
index 452a9123f..937cf3625 100644
--- a/src/opendap/auth/EarthDataLoginAccessToken.java
+++ b/src/opendap/auth/EarthDataLoginAccessToken.java
@@ -171,29 +171,18 @@ public String toString() {
public String toString(String indent, String indent_inc){
StringBuilder sb = new StringBuilder();
String l1i = indent +indent_inc;
- sb.append(indent).append("\"").append(this.getClass().getName()).append("\" : {\n");
- sb.append(l1i).append("\"creationTime\" : \"").append(creationTime).append("\",\n");
- sb.append(l1i).append("\"").append(ACCESS_TOKEN_KEY).append("\" : \"").append(accessToken).append("\",\n");
- sb.append(l1i).append("\"").append(ENDPOINT_KEY).append("\" : \"").append(endPoint).append("\",\n");
- sb.append(l1i).append("\"").append(EXPIRES_IN_KEY).append("\" : \"").append(expiresIn).append("\",\n");
- sb.append(l1i).append("\"").append(TOKEN_TYPE_KEY).append("\" : \"").append(tokenType).append("\",\n");
- sb.append(l1i).append("\"").append(REFRESH_TOKEN_KEY).append("\" : \"").append(refreshToken).append("\"\n");
- sb.append(indent).append("}\n");
+ sb.append(indent).append(this.getClass().getName()).append(": \n");
+ sb.append(l1i).append("creationTime: ").append(creationTime).append("\n");
+ sb.append(l1i).append(ACCESS_TOKEN_KEY).append(": ").append(accessToken).append("\n");
+ sb.append(l1i).append(ENDPOINT_KEY).append(": ").append(endPoint).append("\n");
+ sb.append(l1i).append(EXPIRES_IN_KEY).append(": ").append(expiresIn).append("\n");
+ sb.append(l1i).append(TOKEN_TYPE_KEY).append(": ").append(tokenType).append("\n");
+ sb.append(l1i).append(REFRESH_TOKEN_KEY).append(": ").append(refreshToken).append("\"\n");
return sb.toString();
}
-
-
- public String getEchoTokenValue(){
- return getAccessToken() + ":" + getEdlClientAppId();
- }
-
public String getAuthorizationHeaderValue(){
return getTokenType() + " " + getAccessToken();
}
-
-
-
-
}
diff --git a/src/opendap/auth/IdFilter.java b/src/opendap/auth/IdFilter.java
index d99722326..5d53503b3 100644
--- a/src/opendap/auth/IdFilter.java
+++ b/src/opendap/auth/IdFilter.java
@@ -40,10 +40,10 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.*;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.*;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
@@ -66,7 +66,6 @@ public class IdFilter implements Filter {
public static final String RETURN_TO_URL = "return_to_url";
public static final String USER_PROFILE = "user_profile";
- public static final String IDENTITY_PROVIDER = "identity_provider";
private boolean isInitialized;
private FilterConfig filterConfig;
@@ -358,13 +357,13 @@ else if (enableGuestProfile && requestURI.equals(guestEndpoint)) {
// Check the RETURN_TO_URL and if it's the login endpoint
// return to the root dir of the web application after
// authenticating.
- String returnToUrl = (String) session.getAttribute(RETURN_TO_URL);
+ String returnToUrl = Util.stringFromJson( (String) session.getAttribute(RETURN_TO_URL));
log.debug("Retrieved RETURN_TO_URL: {} (session: {})",returnToUrl,session.getId());
if (returnToUrl != null && returnToUrl.equals(loginEndpoint)) {
String msg = "Setting session RETURN_TO_URL("+RETURN_TO_URL+ ") to: "+contextPath;
msg += " (session: "+session.getId()+")";
log.debug(msg);
- session.setAttribute(RETURN_TO_URL, contextPath);
+ session.setAttribute(RETURN_TO_URL, Util.toJson(contextPath));
}
}
long profilingStartTime = System.currentTimeMillis();
@@ -427,7 +426,7 @@ else if (enableGuestProfile && requestURI.equals(guestEndpoint)) {
// need to a special HttpRequest object to hold our authenticated
// user and then pass it on to the filter chain.
//
- UserProfile up = (UserProfile) session.getAttribute(USER_PROFILE);
+ UserProfile up = UserProfile.fromJson((String) session.getAttribute(USER_PROFILE));
if(up != null && !up.validateUserFootPrint(hsReq)){
if(IdPManager.hasDefaultProvider()) {
// @TODO Maybe use the IdPManager.getDefaultProvider().doLogout(hsReq,hsRes); here?
@@ -478,7 +477,7 @@ else if (enableGuestProfile && requestURI.equals(guestEndpoint)) {
// or sessions. Well, there's a session, but for
// tokens it only needs to persist for the duration
// of the current request
- session.setAttribute(USER_PROFILE, userProfile);
+ session.setAttribute(USER_PROFILE, userProfile.toJson(false));
// By replacing the HttpServletRequest with our own version
// We can inject the uid into
@@ -505,7 +504,7 @@ else if (enableGuestProfile && requestURI.equals(guestEndpoint)) {
// This call leads to the PEPFilter, wooo!
filterChain.doFilter(hsReq, hsRes);
- log.debug("END (session: {} returnToUrl: {})",session.getId(),session.getAttribute(RETURN_TO_URL));
+ log.debug("END (session: {} returnToUrl: {})",session.getId(),Util.stringFromJson( (String) session.getAttribute(RETURN_TO_URL)));
ServletLogUtil.logServerAccessEnd(200,logName);
}
finally {
@@ -518,6 +517,7 @@ else if (enableGuestProfile && requestURI.equals(guestEndpoint)) {
/**
*
*/
+ @Override
public void destroy() {
log = null;
}
@@ -538,10 +538,10 @@ private void doLogout(HttpServletRequest request, HttpServletResponse response)
HttpSession session = request.getSession(false);
if (session != null) {
log.info("doLogout() - Got session...");
- String href = (String) session.getAttribute(RETURN_TO_URL);
+ String href = Util.stringFromJson( (String) session.getAttribute(RETURN_TO_URL));
redirectUrl = href!=null?href:redirectUrl;
- UserProfile up = (UserProfile) session.getAttribute(USER_PROFILE);
+ UserProfile up = UserProfile.fromJson((String) session.getAttribute(USER_PROFILE));
if (up != null) {
log.info("doLogout() - Logging out user '{}'", up.getUID());
IdProvider idProvider = up.getIdP();
@@ -578,13 +578,13 @@ private void doLogout(HttpServletRequest request, HttpServletResponse response)
* Performs the user login operations.
* This method does not actually generate any output. It performs a series
* of redirects, depending upon the current state.
- *
+ *
* 1) If the user is already logged in, it just redirects them back to the
* home page.
- *
+ *
* 2) If no 'code' query parameter is found, it will redirect the user to URS
* to start the authentication process.
- *
+ *
* 3) If a 'code' query parameter is found, it assumes the call is a redirect
* from a successful URS authentication, and will attempt to perform the
* token exchange.
@@ -595,13 +595,13 @@ private void doGuestLogin(HttpServletRequest request, HttpServletResponse respon
// Since the request may come from other deployment contexts we check the request for the context.
String redirectUrl = Util.fullyQualifiedPath(request.getContextPath());
if(session != null) {
- redirectUrl = (String) session.getAttribute(RETURN_TO_URL);
+ redirectUrl = Util.stringFromJson( (String) session.getAttribute(RETURN_TO_URL));
session.invalidate();
}
HttpSession guestSession = request.getSession(true);
synchronized (guestSession) {
- guestSession.setAttribute(RETURN_TO_URL, redirectUrl);
- guestSession.setAttribute(USER_PROFILE, new GuestProfile());
+ guestSession.setAttribute(RETURN_TO_URL, Util.toJson(redirectUrl));
+ guestSession.setAttribute(USER_PROFILE, (new GuestProfile()).toJson(false));
}
//
@@ -616,10 +616,17 @@ private void doGuestLogin(HttpServletRequest request, HttpServletResponse respon
}
}
- private static final String DTS = "
";
- private static final String SDT = "";
- private static final String DTPS = "";
- private static final String SPDT = "
";
+ /**
+ * HTML Shortcuts: openers and closers
+ */
+ private static final String oDTS = "";
+ private static final String cDTS = "";
+
+ private static final String oDTPS = "";
+ private static final String cDTPS = "
";
+
+ private static final String oDDPS = "";
+ private static final String cDDPS = "
";
private String noProfileContent(String contextPath, HttpSession session){
log.debug("Building noProfile String.");
@@ -647,10 +654,10 @@ private String noProfileContent(String contextPath, HttpSession session){
noProfile.append("");
}
if(session!=null){
- String origUrl = (String) session.getAttribute(RETURN_TO_URL);
+ String origUrl = Util.stringFromJson( (String) session.getAttribute(RETURN_TO_URL));
noProfile.append("");
if(origUrl!=null){
- noProfile.append(DTS).append("After authenticating you will be returned to:").append(SDT);
+ noProfile.append(oDTS).append("After authenticating you will be returned to:").append(cDTS);
noProfile.append("").append(origUrl).append(" ");
}
noProfile.append("
");
@@ -704,7 +711,7 @@ private void doUserProfilePage(HttpServletRequest request, HttpServletResponse r
HttpSession session = request.getSession();
if(session != null){
log.debug("session.isNew(): {}", session.isNew());
- UserProfile userProfile = (UserProfile) session.getAttribute(USER_PROFILE);
+ UserProfile userProfile = UserProfile.fromJson((String) session.getAttribute(USER_PROFILE));
if( userProfile != null ){
IdProvider userIdP = userProfile.getIdP();
String name = userProfile.getUID();
@@ -728,33 +735,28 @@ private void doUserProfilePage(HttpServletRequest request, HttpServletResponse r
if(showUserProfileDetails) {
out.println(""+name+"'s Profile
");
- String origUrl = (String) session.getAttribute(RETURN_TO_URL);
+ String origUrl = Util.stringFromJson( (String) session.getAttribute(RETURN_TO_URL));
out.println("");
if(origUrl!=null){
- out.println(DTPS + RETURN_TO_URL + SPDT +""+origUrl+"
");
+ out.println(oDTPS + RETURN_TO_URL + cDTPS +""+origUrl+"
");
}
- out.println(DTPS + "token:"+ SPDT +"" + userProfile.getEDLAccessToken()+"
");
+ out.println(oDTPS + "token:"+ cDTPS +"" + userProfile.getEDLAccessToken()+"
");
- out.println(DTPS + USER_PROFILE + SPDT + "" + userProfile + "
");
- out.println("
");
+ out.println(oDTPS + USER_PROFILE + ".toString()" + cDTPS + "" + userProfile + "
");
- out.println("
");
- out.println("");
- out.print("session attributes: [ ");
+ out.println(oDTPS + USER_PROFILE + ".toJson(pretty=true):" + cDTPS + oDDPS + userProfile.toJson(true) + cDDPS);
+ out.println(oDTPS + USER_PROFILE + ".toJson(pretty=false):" + cDTPS + oDDPS + userProfile.toJson(false) + cDDPS);
- Enumeration attrNames = session.getAttributeNames();
- if(attrNames.hasMoreElements()){
- while(attrNames.hasMoreElements()){
- String attrName = attrNames.nextElement();
- out.print("\""+attrName+"\"");
- out.print((attrNames.hasMoreElements()?", ":""));
- }
- }
- out.println(" ]");
+ out.println("");
+ //
+ // -- -- -- Print Session Info - BEGIN -- -- -- -- -- -- -- -- -- -- -- --
+ //
+ out.println("
");
+ out.println(oDTPS + "Session State Information" + cDTPS);
long timeNow = System.currentTimeMillis();
double sessionInUseTime = (timeNow-session.getCreationTime())/1000.0;
out.println("");
@@ -766,8 +768,18 @@ private void doUserProfilePage(HttpServletRequest request, HttpServletResponse r
out.println(" sessionInUseTime: " + sessionInUseTime + " seconds.");
out.println("");
- }
+ out.println(oDTPS + "Session Attributes" + cDTPS);
+ Enumeration attrNames = session.getAttributeNames();
+ if(attrNames.hasMoreElements()){
+ while(attrNames.hasMoreElements()){
+ String attrName = attrNames.nextElement();
+ out.print(" " + oDTPS + "\"" + attrName + "\": " + cDTPS + oDDPS + session.getAttribute(attrName) + cDDPS +"\n");
+ out.print((attrNames.hasMoreElements()?"\n":""));
+ }
+ }
+ // -- -- -- Print Session Info - END -- -- -- -- -- -- -- -- -- -- -- --
+ }
out.println("
");
}
else if(request.getUserPrincipal() != null){
diff --git a/src/opendap/auth/IdProvider.java b/src/opendap/auth/IdProvider.java
index 529c36e64..eec164f1b 100644
--- a/src/opendap/auth/IdProvider.java
+++ b/src/opendap/auth/IdProvider.java
@@ -29,9 +29,9 @@
import opendap.http.error.Forbidden;
import org.jdom.Element;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpSession;
import java.io.IOException;
import static opendap.auth.IdFilter.USER_PROFILE;
@@ -126,9 +126,10 @@ public void doLogout(HttpServletRequest request, HttpServletResponse response)
String redirectUrl = getServiceContextPath();
HttpSession session = request.getSession(false);
if( session != null ) {
- invalidate((UserProfile) session.getAttribute(USER_PROFILE));
+ UserProfile up = UserProfile.fromJson((String) session.getAttribute(USER_PROFILE));
+ invalidate(up);
if(useReturnToUrlPostLogout) {
- String href = (String) session.getAttribute(IdFilter.RETURN_TO_URL);
+ String href = Util.stringFromJson((String) session.getAttribute(IdFilter.RETURN_TO_URL));
redirectUrl = href!=null?href:redirectUrl;
}
session.invalidate();
diff --git a/src/opendap/auth/PDPService.java b/src/opendap/auth/PDPService.java
index ca94926a0..793b03d13 100644
--- a/src/opendap/auth/PDPService.java
+++ b/src/opendap/auth/PDPService.java
@@ -35,11 +35,11 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -237,14 +237,14 @@ private void doEvaluate(HttpServletRequest request,
*
* This override checks to see if we are in secure mode and if not send a forbidden error.
*
- * @param req Same as for javax.servlet.http.HttpServlet.service()
- * @param resp Same as for javax.servlet.http.HttpServlet.service()
- * @throws javax.servlet.ServletException Same as for javax.servlet.http.HttpServlet.service()
- * @throws java.io.IOException Same as for javax.servlet.http.HttpServlet.service()
+ * @param req Same as for jakarta.servlet.http.HttpServlet.service()
+ * @param resp Same as for jakarta.servlet.http.HttpServlet.service()
+ * @throws jakarta.servlet.ServletException Same as for jakarta.servlet.http.HttpServlet.service()
+ * @throws java.io.IOException Same as for jakarta.servlet.http.HttpServlet.service()
*/
@Override
- protected void service(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)
- throws javax.servlet.ServletException, java.io.IOException {
+ protected void service(jakarta.servlet.http.HttpServletRequest req, jakarta.servlet.http.HttpServletResponse resp)
+ throws jakarta.servlet.ServletException, java.io.IOException {
if (REQUIRE_SECURE_TRANSPORT.get()) {
if (!req.isSecure()) {
diff --git a/src/opendap/auth/PEPFilter.java b/src/opendap/auth/PEPFilter.java
index a79afef35..eb25776d8 100644
--- a/src/opendap/auth/PEPFilter.java
+++ b/src/opendap/auth/PEPFilter.java
@@ -35,10 +35,10 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.*;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.*;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
@@ -145,7 +145,7 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterCha
String authContext = null;
session = hsReq.getSession(false);
if(session!=null){
- UserProfile userProfile = (UserProfile) session.getAttribute(IdFilter.USER_PROFILE);
+ UserProfile userProfile = UserProfile.fromJson((String) session.getAttribute(IdFilter.USER_PROFILE));
if(userProfile!=null){
userId = userProfile.getUID();
IdProvider idP = userProfile.getIdP();
diff --git a/src/opendap/auth/TomcatRealmIdP.java b/src/opendap/auth/TomcatRealmIdP.java
index a24180565..31586bd65 100644
--- a/src/opendap/auth/TomcatRealmIdP.java
+++ b/src/opendap/auth/TomcatRealmIdP.java
@@ -31,9 +31,9 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpSession;
import java.io.IOException;
/**
@@ -71,11 +71,10 @@ public boolean doLogin(HttpServletRequest request, HttpServletResponse response)
log.debug("session.isNew(): {}", session.isNew());
String redirectUrl = getServiceContextPath();
if(session != null){
- String url = (String) session.getAttribute(IdFilter.RETURN_TO_URL);
+ String url =Util.stringFromJson( (String) session.getAttribute(IdFilter.RETURN_TO_URL));
if(url != null) {
redirectUrl = url;
}
- session.setAttribute(IdFilter.IDENTITY_PROVIDER,this);
}
String protocol = request.getScheme();
diff --git a/src/opendap/auth/UrsIdP.java b/src/opendap/auth/UrsIdP.java
index d82caf785..96596e1d9 100644
--- a/src/opendap/auth/UrsIdP.java
+++ b/src/opendap/auth/UrsIdP.java
@@ -52,10 +52,10 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpSession;
import java.io.IOException;
import java.security.PublicKey;
import java.security.interfaces.RSAPublicKey;
@@ -234,8 +234,8 @@ void getEDLUserProfile(UserProfile userProfile) throws IOException {
}
url += "?client_id=" + getUrsClientAppId();
- String authHeader = edlat.getTokenType() + " " + edlat.getAccessToken();
- headers.put("Authorization", authHeader);
+ String authHeader = edlat.getAuthorizationHeaderValue();
+ headers.put(AUTHORIZATION_HEADER_KEY, authHeader);
log.info("URS User Profile Request URL: {}", url);
log.info("URS User Profile Request Authorization Header: {}", authHeader);
@@ -428,7 +428,7 @@ String getEdlUserId(String accessToken) throws IOException {
StringBuilder post_body= new StringBuilder();
post_body.append("token=").append(accessToken);
String auth_header_value="Basic "+ getUrsClientAppAuthCode();
- headers.put("Authorization",auth_header_value);
+ headers.put(AUTHORIZATION_HEADER_KEY,auth_header_value);
log.debug("UID request: url: {} post_body: {}",url,post_body.toString());
@@ -670,7 +670,7 @@ public boolean doLogin(HttpServletRequest request, HttpServletResponse response)
log.info("URS UID: {}", userProfile.getUID());
// Finally, redirect the user back to the original requested resource.
- String redirectUrl = (String) session.getAttribute(IdFilter.RETURN_TO_URL);
+ String redirectUrl = Util.stringFromJson( (String) session.getAttribute(IdFilter.RETURN_TO_URL));
log.debug("session.getAttribute(RETURN_TO_URL): {} (session-id: {})", redirectUrl, session.getId());
if (redirectUrl == null) {
@@ -683,12 +683,11 @@ public boolean doLogin(HttpServletRequest request, HttpServletResponse response)
session.invalidate();
session = request.getSession(true);
- session.setAttribute(IdFilter.RETURN_TO_URL, redirectUrl);
- // Add this instance of UserProfile to the session for retrieval
- // down stream on this request.
- // We set the state of the instance of userProfile below.
+ session.setAttribute(IdFilter.RETURN_TO_URL, Util.toJson(redirectUrl));
- session.setAttribute(IdFilter.USER_PROFILE, userProfile);
+ // Add this instance of UserProfile to the session for retrieval
+ // downstream on this request.
+ session.setAttribute(IdFilter.USER_PROFILE, userProfile.toJson(false));
log.info("Authentication Completed. Redirecting client to redirectUrl: {}", redirectUrl);
@@ -720,7 +719,8 @@ public void doLogout(HttpServletRequest request, HttpServletResponse response) t
try {
HttpSession session = request.getSession(false);
if (session != null) {
- revokeEdlTokens((UserProfile) session.getAttribute(USER_PROFILE));
+ UserProfile up = UserProfile.fromJson((String) session.getAttribute(USER_PROFILE));
+ revokeEdlTokens(up);
}
}
finally {
@@ -794,7 +794,7 @@ private String edlApi(String apiPath, String postData) throws IOException {
Map headers = new HashMap<>();
String authHeader = "Basic " + getUrsClientAppAuthCode();
- headers.put("Authorization", authHeader);
+ headers.put(AUTHORIZATION_HEADER_KEY, authHeader);
log.info("EDL API Request URL: {}", url);
log.info("EDL API Request POST data: {}", LogUtil.scrubEntry(postData));
diff --git a/src/opendap/auth/UserProfile.java b/src/opendap/auth/UserProfile.java
index 7e5b1e881..bb0dc867a 100644
--- a/src/opendap/auth/UserProfile.java
+++ b/src/opendap/auth/UserProfile.java
@@ -29,7 +29,7 @@
import com.google.gson.*;
import opendap.coreServlet.ReqInfo;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import java.io.*;
import java.util.*;
@@ -44,7 +44,7 @@ public class UserProfile implements Serializable {
/* @serial */
private Date objectCreationTime;
/* @serial */
- private String d_jsonStr;
+ private String d_userProfileJsonStr;
/* @serial */
private HashSet d_groups;
/* @serial */
@@ -99,20 +99,20 @@ public UserProfile(String jsonStr){
}
private JsonObject getProfile(){
- if(d_profile == null && d_jsonStr != null){
+ if(d_profile == null && d_userProfileJsonStr != null){
ingestJsonProfileString();
}
return d_profile;
}
public void ingestJsonProfileString(String jsonStr){
- d_jsonStr = jsonStr;
+ d_userProfileJsonStr = jsonStr;
ingestJsonProfileString();
}
private void ingestJsonProfileString(){
JsonParser jparse = new JsonParser();
- d_profile = jparse.parse(d_jsonStr).getAsJsonObject();
+ d_profile = jparse.parse(d_userProfileJsonStr).getAsJsonObject();
JsonElement uid = d_profile.get("uid");
d_uid = uid.getAsString();
}
@@ -312,32 +312,48 @@ public String toString(String indent, String indent_inc){
String l1i = indent +indent_inc;
String l2i = l1i +indent_inc;
- String jsonObjName = getClass().getName().replace(".","_");
- sb.append(indent).append("\"").append(jsonObjName).append("\" : {\n");
- sb.append(l1i).append("\"d_uid\": \"").append(d_uid).append("\",\n");
- sb.append(l1i).append("\"d_clientIp\": \"").append(d_clientIp).append("\",\n");
- sb.append(l1i).append("\"d_clientUserAgent\": \"").append(d_clientUserAgent).append("\",\n");
-
- sb.append(l1i).append("\"").append("edl_profile").append("\" : {");
+ String jsonObjName = getClass().getName();
+ sb.append(indent).append(jsonObjName).append(": \n");
+ sb.append(l1i).append("d_uid: ").append(d_uid).append("\n");
+ sb.append(l1i).append("d_clientIp: ").append(d_clientIp).append("\n");
+ sb.append(l1i).append("d_clientUserAgent: ").append(d_clientUserAgent).append("\n");
+ sb.append(l1i).append("d_jsonUserProfileStr: ").append(d_userProfileJsonStr).append("\n");
+ sb.append("\n");
+ sb.append(l1i).append("edl_profile").append(" :\n");
JsonObject profile = getProfile();
if(profile != null) {
- boolean comma = false;
for (Map.Entry e : profile.entrySet()) {
- sb.append(comma ? ",\n" : "\n");
- sb.append(l2i).append("\"").append(e.getKey()).append("\" : ").append(e.getValue());
- comma = true;
+ sb.append(l2i).append(e.getKey()).append(": ").append(e.getValue()).append("\n");
}
- sb.append(indent).append("\n");
}
- if(d_edlAccessToken !=null){
- sb.append(d_edlAccessToken.toString(l2i,indent_inc));
+ if(d_edlAccessToken != null){
+ sb.append("\n");
+ sb.append(d_edlAccessToken.toString(l1i,indent_inc));
}
- sb.append(l1i).append("}\n");
- sb.append(indent).append("}\n");
+ sb.append("\n");
return sb.toString();
}
+ /**
+ *
+ * @return This object serialized as a json string by gson.
+ */
+ public String toJson(boolean pretty){
+ Gson gson;
+ if(pretty) gson = new GsonBuilder().setPrettyPrinting().create();
+ else gson = new Gson();
+ return gson.toJson(this);
+ }
+ /**
+ *
+ * @param jsonStr A string containing the gson json serialization of an instance of the UserProfile class.
+ * @return A UserProfile class built from the passed jsonStr.
+ */
+ public static UserProfile fromJson(String jsonStr){
+ Gson gson = new Gson();
+ return gson.fromJson(jsonStr, UserProfile.class);
+ }
public static void main(String args[]){
String ursUserProfile = "{\"uid\":\"ndp_opendap\",\"first_name\":\"Nathan\",\"last_name\":\"Potter\",\"registered_date\":\"23 Sep 2014 17:33:09PM\",\"email_address\":\"ndp@opendap.org\",\"country\":\"United States\",\"study_area\":\"Other\",\"user_type\":\"Public User\",\"affiliation\":\"Non-profit\",\"authorized_date\":\"24 Oct 2017 15:01:18PM\",\"allow_auth_app_emails\":true,\"agreed_to_meris_eula\":false,\"agreed_to_sentinel_eula\":false,\"user_groups\":[],\"user_authorized_apps\":2}";
diff --git a/src/opendap/auth/Util.java b/src/opendap/auth/Util.java
index 3378598a3..9464c820c 100644
--- a/src/opendap/auth/Util.java
+++ b/src/opendap/auth/Util.java
@@ -26,14 +26,15 @@
package opendap.auth;
+import com.google.gson.Gson;
import opendap.PathBuilder;
import opendap.coreServlet.ReqInfo;
import opendap.io.HyraxStringEncoding;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
@@ -193,8 +194,10 @@ static void cacheRequestUrlAsNeeded(HttpSession session, String requestUrl, Stri
msg += " (session: "+session.getId()+")";
log.debug(msg);
}
- session.setAttribute(IdFilter.RETURN_TO_URL,requestUrl);
- log.debug("Sanity check session.getAttribute("+ IdFilter.RETURN_TO_URL+") returns {} (session: {})",session.getAttribute(IdFilter.RETURN_TO_URL), session.getId());
+ session.setAttribute(IdFilter.RETURN_TO_URL,Util.toJson(requestUrl));
+ log.debug("Sanity check session.getAttribute("+ IdFilter.RETURN_TO_URL+") returns {} (session: {})",
+ Util.stringFromJson((String) session.getAttribute(IdFilter.RETURN_TO_URL)),
+ session.getId());
}
/**
@@ -207,7 +210,7 @@ public static String getUID(HttpServletRequest req){
HttpSession session = req.getSession(false);
String uid = null;
if(session!=null){
- UserProfile up = (UserProfile) session.getAttribute(USER_PROFILE);
+ UserProfile up = UserProfile.fromJson( (String) session.getAttribute(USER_PROFILE));
if(up!=null){
uid = up.getUID();
}
@@ -228,6 +231,26 @@ public static String getUID(HttpServletRequest req){
}
+ /**
+ *
+ * @param s The String to jsonify
+ * @return The String s, jsonified.
+ */
+ public static String toJson(String s){
+ Gson gson = new Gson();
+ return gson.toJson(s);
+ }
+
+ /**
+ *
+ * @param s The JSON encoded String
+ * @return The String object decoded from the JSON String s.
+ */
+ public static String stringFromJson(String s){
+ Gson gson = new Gson();
+ return gson.fromJson(s, String.class);
+ }
+
/**
*
* @param p
diff --git a/src/opendap/bes/BESError.java b/src/opendap/bes/BESError.java
index 09483c5bc..47abcc120 100644
--- a/src/opendap/bes/BESError.java
+++ b/src/opendap/bes/BESError.java
@@ -41,7 +41,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.Iterator;
diff --git a/src/opendap/bes/BESManager.java b/src/opendap/bes/BESManager.java
index 19872365a..c00f6feb2 100644
--- a/src/opendap/bes/BESManager.java
+++ b/src/opendap/bes/BESManager.java
@@ -37,7 +37,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.ServletContext;
+import jakarta.servlet.ServletContext;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
diff --git a/src/opendap/bes/BESSiteMapService.java b/src/opendap/bes/BESSiteMapService.java
index b762f94cd..887828c05 100644
--- a/src/opendap/bes/BESSiteMapService.java
+++ b/src/opendap/bes/BESSiteMapService.java
@@ -11,10 +11,10 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
import java.io.PrintStream;
import java.util.Date;
@@ -50,7 +50,7 @@ public class BESSiteMapService extends HttpServlet {
* servlet InitParameters. The Debug object can be referenced (with
* impunity) from any of the dods code...
*
- * @throws javax.servlet.ServletException When the bad things happen.
+ * @throws jakarta.servlet.ServletException When the bad things happen.
*/
@Override
public void init() throws ServletException {
diff --git a/src/opendap/bes/BESThreddsDispatchHandler.java b/src/opendap/bes/BESThreddsDispatchHandler.java
index 8b41e4356..4318cb455 100644
--- a/src/opendap/bes/BESThreddsDispatchHandler.java
+++ b/src/opendap/bes/BESThreddsDispatchHandler.java
@@ -46,9 +46,9 @@
import org.jdom.output.XMLOutputter;
import org.jdom.transform.JDOMSource;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.util.*;
diff --git a/src/opendap/bes/BadConfigurationException.java b/src/opendap/bes/BadConfigurationException.java
index b9b386d09..1da31461a 100644
--- a/src/opendap/bes/BadConfigurationException.java
+++ b/src/opendap/bes/BadConfigurationException.java
@@ -29,7 +29,7 @@
import opendap.coreServlet.OPeNDAPException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
/**
*
diff --git a/src/opendap/bes/BesDapDispatcher.java b/src/opendap/bes/BesDapDispatcher.java
index 48c4d9adf..f95f09dfd 100644
--- a/src/opendap/bes/BesDapDispatcher.java
+++ b/src/opendap/bes/BesDapDispatcher.java
@@ -46,9 +46,9 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.Vector;
diff --git a/src/opendap/bes/BesDapResponder.java b/src/opendap/bes/BesDapResponder.java
index 236a07b3d..cb6c09fd9 100644
--- a/src/opendap/bes/BesDapResponder.java
+++ b/src/opendap/bes/BesDapResponder.java
@@ -32,7 +32,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import java.util.Date;
/**
diff --git a/src/opendap/bes/DirectoryDispatchHandler.java b/src/opendap/bes/DirectoryDispatchHandler.java
index e6f1593d2..0f988a86d 100644
--- a/src/opendap/bes/DirectoryDispatchHandler.java
+++ b/src/opendap/bes/DirectoryDispatchHandler.java
@@ -40,9 +40,9 @@
import org.slf4j.Logger;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.util.Date;
diff --git a/src/opendap/bes/FileDispatchHandler.java b/src/opendap/bes/FileDispatchHandler.java
index 540b07bc8..f9519a852 100644
--- a/src/opendap/bes/FileDispatchHandler.java
+++ b/src/opendap/bes/FileDispatchHandler.java
@@ -38,10 +38,10 @@
import org.jdom.JDOMException;
import org.jdom.output.XMLOutputter;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;
diff --git a/src/opendap/bes/Version.java b/src/opendap/bes/Version.java
index 7f606f4d7..28e6a3a30 100644
--- a/src/opendap/bes/Version.java
+++ b/src/opendap/bes/Version.java
@@ -31,8 +31,8 @@
import org.jdom.Element;
import org.jdom.JDOMException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.TreeSet;
diff --git a/src/opendap/bes/VersionDispatchHandler.java b/src/opendap/bes/VersionDispatchHandler.java
index 856bbec84..128b6ff3b 100644
--- a/src/opendap/bes/VersionDispatchHandler.java
+++ b/src/opendap/bes/VersionDispatchHandler.java
@@ -34,10 +34,10 @@
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.PrintStream;
import java.util.Date;
import java.util.regex.Matcher;
diff --git a/src/opendap/bes/dap2Responders/Ascii.java b/src/opendap/bes/dap2Responders/Ascii.java
index 76fc45c75..06eff112f 100644
--- a/src/opendap/bes/dap2Responders/Ascii.java
+++ b/src/opendap/bes/dap2Responders/Ascii.java
@@ -35,8 +35,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
diff --git a/src/opendap/bes/dap2Responders/CovJson.java b/src/opendap/bes/dap2Responders/CovJson.java
index a581ed68e..72202be31 100644
--- a/src/opendap/bes/dap2Responders/CovJson.java
+++ b/src/opendap/bes/dap2Responders/CovJson.java
@@ -35,8 +35,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap2Responders/CsvData.java b/src/opendap/bes/dap2Responders/CsvData.java
index de460c5cb..db7fadcb9 100644
--- a/src/opendap/bes/dap2Responders/CsvData.java
+++ b/src/opendap/bes/dap2Responders/CsvData.java
@@ -35,8 +35,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap2Responders/DAS.java b/src/opendap/bes/dap2Responders/DAS.java
index 14fc65a58..92c9392b4 100644
--- a/src/opendap/bes/dap2Responders/DAS.java
+++ b/src/opendap/bes/dap2Responders/DAS.java
@@ -38,8 +38,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap2Responders/DDS.java b/src/opendap/bes/dap2Responders/DDS.java
index b9d59ff1e..48f06507c 100644
--- a/src/opendap/bes/dap2Responders/DDS.java
+++ b/src/opendap/bes/dap2Responders/DDS.java
@@ -35,8 +35,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap2Responders/DDX.java b/src/opendap/bes/dap2Responders/DDX.java
index e783512af..2c8c14519 100644
--- a/src/opendap/bes/dap2Responders/DDX.java
+++ b/src/opendap/bes/dap2Responders/DDX.java
@@ -35,8 +35,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
diff --git a/src/opendap/bes/dap2Responders/Dap2Data.java b/src/opendap/bes/dap2Responders/Dap2Data.java
index d20511213..8054601e7 100644
--- a/src/opendap/bes/dap2Responders/Dap2Data.java
+++ b/src/opendap/bes/dap2Responders/Dap2Data.java
@@ -41,9 +41,9 @@
import org.jdom.input.SAXBuilder;
import org.slf4j.Logger;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.*;
diff --git a/src/opendap/bes/dap2Responders/Dap2IFH.java b/src/opendap/bes/dap2Responders/Dap2IFH.java
index 2260e8637..93c0846a1 100644
--- a/src/opendap/bes/dap2Responders/Dap2IFH.java
+++ b/src/opendap/bes/dap2Responders/Dap2IFH.java
@@ -54,8 +54,8 @@
import org.owasp.encoder.Encode;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
import java.util.Iterator;
import java.util.List;
diff --git a/src/opendap/bes/dap2Responders/DatasetInfoHtmlPage.java b/src/opendap/bes/dap2Responders/DatasetInfoHtmlPage.java
index 23f12cee1..ac768d63d 100644
--- a/src/opendap/bes/dap2Responders/DatasetInfoHtmlPage.java
+++ b/src/opendap/bes/dap2Responders/DatasetInfoHtmlPage.java
@@ -35,8 +35,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
diff --git a/src/opendap/bes/dap2Responders/GeoTiff.java b/src/opendap/bes/dap2Responders/GeoTiff.java
index 9958b31ab..fbeba1b76 100644
--- a/src/opendap/bes/dap2Responders/GeoTiff.java
+++ b/src/opendap/bes/dap2Responders/GeoTiff.java
@@ -35,8 +35,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap2Responders/GmlJpeg2000.java b/src/opendap/bes/dap2Responders/GmlJpeg2000.java
index 42c3b9253..3a65af963 100644
--- a/src/opendap/bes/dap2Responders/GmlJpeg2000.java
+++ b/src/opendap/bes/dap2Responders/GmlJpeg2000.java
@@ -36,8 +36,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap2Responders/Ijson.java b/src/opendap/bes/dap2Responders/Ijson.java
index 4320e1eb7..b71337257 100644
--- a/src/opendap/bes/dap2Responders/Ijson.java
+++ b/src/opendap/bes/dap2Responders/Ijson.java
@@ -35,8 +35,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap2Responders/Iso19115.java b/src/opendap/bes/dap2Responders/Iso19115.java
index ce1b77857..0c490029b 100644
--- a/src/opendap/bes/dap2Responders/Iso19115.java
+++ b/src/opendap/bes/dap2Responders/Iso19115.java
@@ -42,8 +42,8 @@
import org.jdom.transform.JDOMSource;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap2Responders/Iso19115Rubric.java b/src/opendap/bes/dap2Responders/Iso19115Rubric.java
index 5b5fcca11..62d0b46af 100644
--- a/src/opendap/bes/dap2Responders/Iso19115Rubric.java
+++ b/src/opendap/bes/dap2Responders/Iso19115Rubric.java
@@ -43,8 +43,8 @@
import org.jdom.transform.JDOMSource;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap2Responders/Json.java b/src/opendap/bes/dap2Responders/Json.java
index b16904b15..c19f1584c 100644
--- a/src/opendap/bes/dap2Responders/Json.java
+++ b/src/opendap/bes/dap2Responders/Json.java
@@ -35,8 +35,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap2Responders/Netcdf3.java b/src/opendap/bes/dap2Responders/Netcdf3.java
index 21411cec7..52815258d 100644
--- a/src/opendap/bes/dap2Responders/Netcdf3.java
+++ b/src/opendap/bes/dap2Responders/Netcdf3.java
@@ -34,8 +34,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap2Responders/Netcdf4.java b/src/opendap/bes/dap2Responders/Netcdf4.java
index 2d906a417..444c29aa5 100644
--- a/src/opendap/bes/dap2Responders/Netcdf4.java
+++ b/src/opendap/bes/dap2Responders/Netcdf4.java
@@ -34,8 +34,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap2Responders/RDF.java b/src/opendap/bes/dap2Responders/RDF.java
index a5c4d6259..d820d47d0 100644
--- a/src/opendap/bes/dap2Responders/RDF.java
+++ b/src/opendap/bes/dap2Responders/RDF.java
@@ -44,8 +44,8 @@
import org.jdom.output.XMLOutputter;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import javax.xml.transform.stream.StreamSource;
import java.io.ByteArrayInputStream;
import java.io.DataOutputStream;
diff --git a/src/opendap/bes/dap2Responders/XmlData.java b/src/opendap/bes/dap2Responders/XmlData.java
index ceeaad9b0..0b0564907 100644
--- a/src/opendap/bes/dap2Responders/XmlData.java
+++ b/src/opendap/bes/dap2Responders/XmlData.java
@@ -35,8 +35,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap4Responders/Dap4Responder.java b/src/opendap/bes/dap4Responders/Dap4Responder.java
index dfb7a72d1..6185d3a12 100644
--- a/src/opendap/bes/dap4Responders/Dap4Responder.java
+++ b/src/opendap/bes/dap4Responders/Dap4Responder.java
@@ -38,8 +38,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Pattern;
diff --git a/src/opendap/bes/dap4Responders/Dap4ResponderTest.java b/src/opendap/bes/dap4Responders/Dap4ResponderTest.java
index 4aebef32b..de23696bc 100644
--- a/src/opendap/bes/dap4Responders/Dap4ResponderTest.java
+++ b/src/opendap/bes/dap4Responders/Dap4ResponderTest.java
@@ -34,8 +34,8 @@
import opendap.bes.BesApi;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
/**
* @brief Test Dap4Responder.
diff --git a/src/opendap/bes/dap4Responders/DataResponse/CovJsonDR.java b/src/opendap/bes/dap4Responders/DataResponse/CovJsonDR.java
index 87d0d7cf9..539191379 100644
--- a/src/opendap/bes/dap4Responders/DataResponse/CovJsonDR.java
+++ b/src/opendap/bes/dap4Responders/DataResponse/CovJsonDR.java
@@ -37,8 +37,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap4Responders/DataResponse/CsvDR.java b/src/opendap/bes/dap4Responders/DataResponse/CsvDR.java
index 4c3b396a8..429e463a8 100644
--- a/src/opendap/bes/dap4Responders/DataResponse/CsvDR.java
+++ b/src/opendap/bes/dap4Responders/DataResponse/CsvDR.java
@@ -37,8 +37,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap4Responders/DataResponse/GeoTiffDR.java b/src/opendap/bes/dap4Responders/DataResponse/GeoTiffDR.java
index 99a9ab060..4c649ec42 100644
--- a/src/opendap/bes/dap4Responders/DataResponse/GeoTiffDR.java
+++ b/src/opendap/bes/dap4Responders/DataResponse/GeoTiffDR.java
@@ -37,8 +37,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap4Responders/DataResponse/GmlJpeg2000DR.java b/src/opendap/bes/dap4Responders/DataResponse/GmlJpeg2000DR.java
index 27b4ce612..c8bb16ce9 100644
--- a/src/opendap/bes/dap4Responders/DataResponse/GmlJpeg2000DR.java
+++ b/src/opendap/bes/dap4Responders/DataResponse/GmlJpeg2000DR.java
@@ -37,8 +37,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap4Responders/DataResponse/IjsonDR.java b/src/opendap/bes/dap4Responders/DataResponse/IjsonDR.java
index ed006bf26..e82c79ff6 100644
--- a/src/opendap/bes/dap4Responders/DataResponse/IjsonDR.java
+++ b/src/opendap/bes/dap4Responders/DataResponse/IjsonDR.java
@@ -37,8 +37,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap4Responders/DataResponse/JsonDR.java b/src/opendap/bes/dap4Responders/DataResponse/JsonDR.java
index e37659681..26d0988f1 100644
--- a/src/opendap/bes/dap4Responders/DataResponse/JsonDR.java
+++ b/src/opendap/bes/dap4Responders/DataResponse/JsonDR.java
@@ -37,8 +37,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap4Responders/DataResponse/Netcdf3DR.java b/src/opendap/bes/dap4Responders/DataResponse/Netcdf3DR.java
index 9a18029f1..1fd855d48 100644
--- a/src/opendap/bes/dap4Responders/DataResponse/Netcdf3DR.java
+++ b/src/opendap/bes/dap4Responders/DataResponse/Netcdf3DR.java
@@ -37,8 +37,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
import java.util.regex.Pattern;
diff --git a/src/opendap/bes/dap4Responders/DataResponse/Netcdf4DR.java b/src/opendap/bes/dap4Responders/DataResponse/Netcdf4DR.java
index 7ba181dc4..05fc29043 100644
--- a/src/opendap/bes/dap4Responders/DataResponse/Netcdf4DR.java
+++ b/src/opendap/bes/dap4Responders/DataResponse/Netcdf4DR.java
@@ -37,8 +37,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap4Responders/DataResponse/NormativeDR.java b/src/opendap/bes/dap4Responders/DataResponse/NormativeDR.java
index d6ed49a6e..8b0e64d87 100644
--- a/src/opendap/bes/dap4Responders/DataResponse/NormativeDR.java
+++ b/src/opendap/bes/dap4Responders/DataResponse/NormativeDR.java
@@ -43,9 +43,9 @@
import org.jdom.input.SAXBuilder;
import org.slf4j.Logger;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.*;
/**
diff --git a/src/opendap/bes/dap4Responders/DataResponse/XmlDR.java b/src/opendap/bes/dap4Responders/DataResponse/XmlDR.java
index 1a1586ec1..f2d8bf5b1 100644
--- a/src/opendap/bes/dap4Responders/DataResponse/XmlDR.java
+++ b/src/opendap/bes/dap4Responders/DataResponse/XmlDR.java
@@ -37,8 +37,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap4Responders/DatasetMetadata/HtmlDMR.java b/src/opendap/bes/dap4Responders/DatasetMetadata/HtmlDMR.java
index 4d15a5101..295b66127 100644
--- a/src/opendap/bes/dap4Responders/DatasetMetadata/HtmlDMR.java
+++ b/src/opendap/bes/dap4Responders/DatasetMetadata/HtmlDMR.java
@@ -54,8 +54,8 @@
import org.owasp.encoder.Encode;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
import java.util.List;
import java.util.Vector;
diff --git a/src/opendap/bes/dap4Responders/DatasetMetadata/IjsonDMR.java b/src/opendap/bes/dap4Responders/DatasetMetadata/IjsonDMR.java
index 2176d787d..bb585c9b6 100644
--- a/src/opendap/bes/dap4Responders/DatasetMetadata/IjsonDMR.java
+++ b/src/opendap/bes/dap4Responders/DatasetMetadata/IjsonDMR.java
@@ -37,8 +37,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap4Responders/DatasetMetadata/JsonDMR.java b/src/opendap/bes/dap4Responders/DatasetMetadata/JsonDMR.java
index 75ff450d1..7544dcd13 100644
--- a/src/opendap/bes/dap4Responders/DatasetMetadata/JsonDMR.java
+++ b/src/opendap/bes/dap4Responders/DatasetMetadata/JsonDMR.java
@@ -37,8 +37,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap4Responders/DatasetMetadata/NormativeDMR.java b/src/opendap/bes/dap4Responders/DatasetMetadata/NormativeDMR.java
index 928d1865d..d6abf628b 100644
--- a/src/opendap/bes/dap4Responders/DatasetMetadata/NormativeDMR.java
+++ b/src/opendap/bes/dap4Responders/DatasetMetadata/NormativeDMR.java
@@ -37,8 +37,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
diff --git a/src/opendap/bes/dap4Responders/DatasetMetadata/RdfDMR.java b/src/opendap/bes/dap4Responders/DatasetMetadata/RdfDMR.java
index 0b2b8ef75..2ed483977 100644
--- a/src/opendap/bes/dap4Responders/DatasetMetadata/RdfDMR.java
+++ b/src/opendap/bes/dap4Responders/DatasetMetadata/RdfDMR.java
@@ -46,8 +46,8 @@
import org.jdom.output.XMLOutputter;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import javax.xml.transform.stream.StreamSource;
import java.io.ByteArrayInputStream;
import java.io.DataOutputStream;
diff --git a/src/opendap/bes/dap4Responders/DatasetMetadata/XmlDMR.java b/src/opendap/bes/dap4Responders/DatasetMetadata/XmlDMR.java
index 24a714e1d..2624824dd 100644
--- a/src/opendap/bes/dap4Responders/DatasetMetadata/XmlDMR.java
+++ b/src/opendap/bes/dap4Responders/DatasetMetadata/XmlDMR.java
@@ -37,8 +37,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
diff --git a/src/opendap/bes/dap4Responders/DatasetServices/HtmlDSR.java b/src/opendap/bes/dap4Responders/DatasetServices/HtmlDSR.java
index 9274ac21a..bd34ed139 100644
--- a/src/opendap/bes/dap4Responders/DatasetServices/HtmlDSR.java
+++ b/src/opendap/bes/dap4Responders/DatasetServices/HtmlDSR.java
@@ -45,8 +45,8 @@
import org.jdom.transform.JDOMSource;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
import java.util.HashMap;
diff --git a/src/opendap/bes/dap4Responders/DatasetServices/NormativeDSR.java b/src/opendap/bes/dap4Responders/DatasetServices/NormativeDSR.java
index 7c0892791..f053d8496 100644
--- a/src/opendap/bes/dap4Responders/DatasetServices/NormativeDSR.java
+++ b/src/opendap/bes/dap4Responders/DatasetServices/NormativeDSR.java
@@ -47,8 +47,8 @@
import org.jdom.output.XMLOutputter;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
import java.util.*;
diff --git a/src/opendap/bes/dap4Responders/DatasetServices/XmlDSR.java b/src/opendap/bes/dap4Responders/DatasetServices/XmlDSR.java
index 63e7f720f..bf779ba10 100644
--- a/src/opendap/bes/dap4Responders/DatasetServices/XmlDSR.java
+++ b/src/opendap/bes/dap4Responders/DatasetServices/XmlDSR.java
@@ -43,8 +43,8 @@
import org.jdom.output.XMLOutputter;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
import java.util.HashMap;
diff --git a/src/opendap/bes/dap4Responders/FileAccess.java b/src/opendap/bes/dap4Responders/FileAccess.java
index 3041fda81..cd8af3729 100644
--- a/src/opendap/bes/dap4Responders/FileAccess.java
+++ b/src/opendap/bes/dap4Responders/FileAccess.java
@@ -39,9 +39,9 @@
import org.owasp.encoder.Encode;
import org.slf4j.Logger;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
diff --git a/src/opendap/bes/dap4Responders/Iso19115/IsoDMR.java b/src/opendap/bes/dap4Responders/Iso19115/IsoDMR.java
index 53bb19616..0256fe513 100644
--- a/src/opendap/bes/dap4Responders/Iso19115/IsoDMR.java
+++ b/src/opendap/bes/dap4Responders/Iso19115/IsoDMR.java
@@ -44,8 +44,8 @@
import org.jdom.transform.JDOMSource;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap4Responders/Iso19115/IsoRubricDMR.java b/src/opendap/bes/dap4Responders/Iso19115/IsoRubricDMR.java
index 5c82ee184..20dcc1e1e 100644
--- a/src/opendap/bes/dap4Responders/Iso19115/IsoRubricDMR.java
+++ b/src/opendap/bes/dap4Responders/Iso19115/IsoRubricDMR.java
@@ -44,8 +44,8 @@
import org.jdom.transform.JDOMSource;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
/**
diff --git a/src/opendap/bes/dap4Responders/Version.java b/src/opendap/bes/dap4Responders/Version.java
index ce1ae0469..5c66f1ae7 100644
--- a/src/opendap/bes/dap4Responders/Version.java
+++ b/src/opendap/bes/dap4Responders/Version.java
@@ -33,9 +33,9 @@
import org.jdom.output.XMLOutputter;
import org.slf4j.Logger;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.PrintStream;
/**
diff --git a/src/opendap/coreServlet/BotFilter.java b/src/opendap/coreServlet/BotFilter.java
index 81b791f1a..02946fc21 100644
--- a/src/opendap/coreServlet/BotFilter.java
+++ b/src/opendap/coreServlet/BotFilter.java
@@ -5,9 +5,9 @@
import org.jdom.Document;
import org.jdom.Element;
-import javax.servlet.*;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.*;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashSet;
import java.util.Vector;
@@ -17,7 +17,7 @@
/**
* BotFilter
- * This implementation of the javax.servlet.Filter interface can be used to
+ * This implementation of the jakarta.servlet.Filter interface can be used to
* block access from specific IP addresses, by a range of IP addresses using
* a regular expression, or by the value of the requests User-Agent header using
* a regular expression.
diff --git a/src/opendap/coreServlet/ClickjackFilter.java b/src/opendap/coreServlet/ClickjackFilter.java
index 887927aaf..64ee05f3b 100644
--- a/src/opendap/coreServlet/ClickjackFilter.java
+++ b/src/opendap/coreServlet/ClickjackFilter.java
@@ -10,13 +10,13 @@
import java.io.IOException;
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
public class ClickjackFilter implements Filter
{
@@ -34,9 +34,11 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterCha
chain.doFilter(request, response);
}
+ @Override
public void destroy() {
}
+ @Override
public void init(FilterConfig filterConfig) {
String configMode = filterConfig.getInitParameter("mode");
if ( configMode != null ) {
diff --git a/src/opendap/coreServlet/DispatchHandler.java b/src/opendap/coreServlet/DispatchHandler.java
index 80a1accdc..8fa99342b 100644
--- a/src/opendap/coreServlet/DispatchHandler.java
+++ b/src/opendap/coreServlet/DispatchHandler.java
@@ -29,9 +29,9 @@
import opendap.bes.BesApi;
import org.jdom.Element;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
/**
*
@@ -100,7 +100,7 @@ public void handleRequest(HttpServletRequest request,
*
* @param req The request for which we need to get a last modified date.
* @return The last modified date of the URI referenced in th request.
- * @see javax.servlet.http.HttpServlet
+ * @see jakarta.servlet.http.HttpServlet
*/
public long getLastModified(HttpServletRequest req);
diff --git a/src/opendap/coreServlet/DispatchServlet.java b/src/opendap/coreServlet/DispatchServlet.java
index 05d4b7c0e..37da0e21b 100644
--- a/src/opendap/coreServlet/DispatchServlet.java
+++ b/src/opendap/coreServlet/DispatchServlet.java
@@ -39,10 +39,10 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
@@ -97,7 +97,7 @@ public class DispatchServlet extends HttpServlet {
* servlet InitParameters. The Debug object can be referenced (with
* impunity) from any of the dods code...
*
- * @throws javax.servlet.ServletException When the bad things happen.
+ * @throws jakarta.servlet.ServletException When the bad things happen.
*/
public void init() throws ServletException {
INIT_LOCK.lock();
diff --git a/src/opendap/coreServlet/DocServlet.java b/src/opendap/coreServlet/DocServlet.java
index 30d3ed9b6..dea993ec3 100644
--- a/src/opendap/coreServlet/DocServlet.java
+++ b/src/opendap/coreServlet/DocServlet.java
@@ -32,10 +32,10 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.Date;
import java.util.Scanner;
diff --git a/src/opendap/coreServlet/HttpResponder.java b/src/opendap/coreServlet/HttpResponder.java
index d338c06ca..2490de41e 100644
--- a/src/opendap/coreServlet/HttpResponder.java
+++ b/src/opendap/coreServlet/HttpResponder.java
@@ -28,8 +28,8 @@
import opendap.io.HyraxStringEncoding;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
diff --git a/src/opendap/coreServlet/LicenseManager.java b/src/opendap/coreServlet/LicenseManager.java
index 5ad2c74a5..40a9403d0 100644
--- a/src/opendap/coreServlet/LicenseManager.java
+++ b/src/opendap/coreServlet/LicenseManager.java
@@ -29,8 +29,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;
import java.util.GregorianCalendar;
diff --git a/src/opendap/coreServlet/NoPostHandler.java b/src/opendap/coreServlet/NoPostHandler.java
index dcc2ced72..96c623385 100644
--- a/src/opendap/coreServlet/NoPostHandler.java
+++ b/src/opendap/coreServlet/NoPostHandler.java
@@ -29,10 +29,10 @@
import opendap.bes.BesApi;
import org.jdom.Element;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.util.Date;
/**
diff --git a/src/opendap/coreServlet/OPeNDAPException.java b/src/opendap/coreServlet/OPeNDAPException.java
index a34bab808..184b8d2fc 100644
--- a/src/opendap/coreServlet/OPeNDAPException.java
+++ b/src/opendap/coreServlet/OPeNDAPException.java
@@ -36,10 +36,10 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLDecoder;
import java.util.concurrent.ConcurrentHashMap;
@@ -578,7 +578,7 @@ public static String getSupportMailtoLink(HttpServletRequest request, int http_s
sb.append("# server: ").append(request.getServerName()).append("%0A");
sb.append("# port: ").append(request.getServerPort()).append("%0A");
- String cleanUri = (String) request.getAttribute("javax.servlet.forward.request_uri");
+ String cleanUri = (String) request.getAttribute("jakarta.servlet.forward.request_uri");
if(cleanUri!=null){
cleanUri = URLDecoder.decode(cleanUri, HyraxStringEncoding.getCharsetName());
cleanUri = Scrub.urlContent(cleanUri);
@@ -587,7 +587,7 @@ public static String getSupportMailtoLink(HttpServletRequest request, int http_s
cleanUri = "null";
}
- sb.append("# javax.servlet.forward.request_uri: ");
+ sb.append("# jakarta.servlet.forward.request_uri: ");
sb.append(cleanUri);
sb.append("%0A");
diff --git a/src/opendap/coreServlet/OpendapMimeHeaders.java b/src/opendap/coreServlet/OpendapMimeHeaders.java
index 47ab237c2..a85bdbbf1 100644
--- a/src/opendap/coreServlet/OpendapMimeHeaders.java
+++ b/src/opendap/coreServlet/OpendapMimeHeaders.java
@@ -26,8 +26,8 @@
package opendap.coreServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
/**
* User: ndp
diff --git a/src/opendap/coreServlet/PersistentConfigurationHandler.java b/src/opendap/coreServlet/PersistentConfigurationHandler.java
index 44efd58fc..ac1a8801f 100644
--- a/src/opendap/coreServlet/PersistentConfigurationHandler.java
+++ b/src/opendap/coreServlet/PersistentConfigurationHandler.java
@@ -30,7 +30,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServlet;
import java.io.*;
import java.util.concurrent.locks.ReentrantLock;
diff --git a/src/opendap/coreServlet/ReqInfo.java b/src/opendap/coreServlet/ReqInfo.java
index 7d80fd024..a82e8db5c 100644
--- a/src/opendap/coreServlet/ReqInfo.java
+++ b/src/opendap/coreServlet/ReqInfo.java
@@ -36,7 +36,7 @@
import org.json.simple.JSONArray;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.StringWriter;
import java.net.URLDecoder;
@@ -95,11 +95,11 @@ public class ReqInfo {
private static final String X_FORWARDED_PORT = "X-Forwarded-Port";
private static final String X_FORWARDED_FOR ="X-Forwarded-For";
- private static final String JAVAX_SERVLET_FORWARD_REQUEST_URI = "javax.servlet.forward.request_uri";
- private static final String JAVAX_SERVLET_FORWARD_CONTEXT_PATH = "javax.servlet.forward.context_path";
- private static final String JAVAX_SERVLET_FORWARD_SERVLET_PATH = "javax.servlet.forward.servlet_path";
- private static final String JAVAX_SERVLET_FORWARD_PATH_INFO = "javax.servlet.forward.path_info";
- private static final String JAVAX_SERVLET_FORWARD_QUERY_STRING = "javax.servlet.forward.query_string";
+ private static final String JAVAX_SERVLET_FORWARD_REQUEST_URI = "jakarta.servlet.forward.request_uri";
+ private static final String JAVAX_SERVLET_FORWARD_CONTEXT_PATH = "jakarta.servlet.forward.context_path";
+ private static final String JAVAX_SERVLET_FORWARD_SERVLET_PATH = "jakarta.servlet.forward.servlet_path";
+ private static final String JAVAX_SERVLET_FORWARD_PATH_INFO = "jakarta.servlet.forward.path_info";
+ private static final String JAVAX_SERVLET_FORWARD_QUERY_STRING = "jakarta.servlet.forward.query_string";
private static final String MISSING = "MISSING";
/**
@@ -772,7 +772,7 @@ public static String getHistoryJsonEntry(HttpServletRequest request) throws IOE
* but it does not include query string parameters.
*
* If this request has been forwarded using:
- * RequestDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
+ * RequestDispatcher.forward(jakarta.servlet.ServletRequest, jakarta.servlet.ServletResponse)
* the server path in the reconstructed URL must reflect the path used to
* obtain the RequestDispatcher, and not the server path specified by the client.
*
@@ -909,7 +909,7 @@ else if(xfp_client_proto!=null){
// Read the javadoc entry for HttpServletRequest.getRequestUrl() in the header
// comment for this method.
//
- // Because javax.servlet.forward.request_uri does not contain the request
+ // Because jakarta.servlet.forward.request_uri does not contain the request
// protocol or the port number of the service we have to determine this
// by examining the HttpServletRequest objects state.
String serverName = req.getServerName();
diff --git a/src/opendap/coreServlet/RequestCache.java b/src/opendap/coreServlet/RequestCache.java
index d4a404cf2..897a799a4 100644
--- a/src/opendap/coreServlet/RequestCache.java
+++ b/src/opendap/coreServlet/RequestCache.java
@@ -27,7 +27,7 @@
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.HashMap;
import java.util.concurrent.ConcurrentHashMap;
diff --git a/src/opendap/coreServlet/ServletResponseTransmitCoordinator.java b/src/opendap/coreServlet/ServletResponseTransmitCoordinator.java
index 8fc40f187..65315921f 100644
--- a/src/opendap/coreServlet/ServletResponseTransmitCoordinator.java
+++ b/src/opendap/coreServlet/ServletResponseTransmitCoordinator.java
@@ -1,7 +1,7 @@
package opendap.coreServlet;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletResponse;
+
import java.io.IOException;
diff --git a/src/opendap/coreServlet/ServletUtil.java b/src/opendap/coreServlet/ServletUtil.java
index d5d0624fa..ee077c62a 100644
--- a/src/opendap/coreServlet/ServletUtil.java
+++ b/src/opendap/coreServlet/ServletUtil.java
@@ -31,13 +31,13 @@
import org.jdom.input.SAXBuilder;
import org.slf4j.LoggerFactory;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.ServletConfig;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
diff --git a/src/opendap/coreServlet/Util.java b/src/opendap/coreServlet/Util.java
index a8f40b46a..31d9d29c7 100644
--- a/src/opendap/coreServlet/Util.java
+++ b/src/opendap/coreServlet/Util.java
@@ -29,12 +29,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
diff --git a/src/opendap/dap/Dap2Service.java b/src/opendap/dap/Dap2Service.java
index 1d4db6717..f7e0536ab 100644
--- a/src/opendap/dap/Dap2Service.java
+++ b/src/opendap/dap/Dap2Service.java
@@ -30,7 +30,7 @@
import org.jdom.Document;
import org.jdom.Element;
-import javax.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServlet;
/**
* Created by ndp on 4/15/15.
diff --git a/src/opendap/dap/DapResponder.java b/src/opendap/dap/DapResponder.java
index d58d1d202..32967feb8 100644
--- a/src/opendap/dap/DapResponder.java
+++ b/src/opendap/dap/DapResponder.java
@@ -32,7 +32,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import java.util.regex.Pattern;
/**
diff --git a/src/opendap/dap/Request.java b/src/opendap/dap/Request.java
index 88a16dcfa..f929c6ade 100644
--- a/src/opendap/dap/Request.java
+++ b/src/opendap/dap/Request.java
@@ -29,8 +29,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
/**
* Created by IntelliJ IDEA.
diff --git a/src/opendap/dap/User.java b/src/opendap/dap/User.java
index 8ba941abc..fda278ae8 100644
--- a/src/opendap/dap/User.java
+++ b/src/opendap/dap/User.java
@@ -35,8 +35,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import java.util.UUID;
/**
@@ -60,7 +60,7 @@ public User(HttpServletRequest req){
HttpSession session = request.getSession(false);
if(session!=null) {
- userProfile= (UserProfile) session.getAttribute(IdFilter.USER_PROFILE);
+ userProfile= UserProfile.fromJson((String) session.getAttribute(IdFilter.USER_PROFILE));
if(userProfile!=null)
log.debug(userProfile.toString());
}
diff --git a/src/opendap/dap4/Dap4Error.java b/src/opendap/dap4/Dap4Error.java
index 4fd5fa9b1..c6a3df543 100644
--- a/src/opendap/dap4/Dap4Error.java
+++ b/src/opendap/dap4/Dap4Error.java
@@ -37,7 +37,7 @@
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
diff --git a/src/opendap/dap4/Dap4Service.java b/src/opendap/dap4/Dap4Service.java
index ecbbd0b7e..4c720ebad 100644
--- a/src/opendap/dap4/Dap4Service.java
+++ b/src/opendap/dap4/Dap4Service.java
@@ -30,7 +30,7 @@
import org.jdom.Document;
import org.jdom.Element;
-import javax.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServlet;
/**
* Created by ndp on 4/15/15.
diff --git a/src/opendap/dap4/QueryParameters.java b/src/opendap/dap4/QueryParameters.java
index 47f9ee487..8fa51795e 100644
--- a/src/opendap/dap4/QueryParameters.java
+++ b/src/opendap/dap4/QueryParameters.java
@@ -27,7 +27,7 @@
package opendap.dap4;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import java.io.IOException;
import opendap.dap.Request;
diff --git a/src/opendap/gateway/BesGatewayApi.java b/src/opendap/gateway/BesGatewayApi.java
index 004f2fca9..fd092e72c 100644
--- a/src/opendap/gateway/BesGatewayApi.java
+++ b/src/opendap/gateway/BesGatewayApi.java
@@ -45,7 +45,7 @@
import org.jdom.JDOMException;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
diff --git a/src/opendap/gateway/DispatchHandler.java b/src/opendap/gateway/DispatchHandler.java
index 3469fe828..88daf0322 100644
--- a/src/opendap/gateway/DispatchHandler.java
+++ b/src/opendap/gateway/DispatchHandler.java
@@ -34,9 +34,9 @@
import org.jdom.Element;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.util.regex.Pattern;
/**
diff --git a/src/opendap/gateway/DispatchServlet.java b/src/opendap/gateway/DispatchServlet.java
index 73580ab0b..54d79ee11 100644
--- a/src/opendap/gateway/DispatchServlet.java
+++ b/src/opendap/gateway/DispatchServlet.java
@@ -34,10 +34,10 @@
import org.jdom.input.SAXBuilder;
import org.slf4j.Logger;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -90,7 +90,7 @@ public void init() throws ServletException {
* Loads the configuration file specified in the servlet parameter
* GatewayConfigFileName.
*
- * @throws javax.servlet.ServletException When the file is missing, unreadable, or fails
+ * @throws jakarta.servlet.ServletException When the file is missing, unreadable, or fails
* to parse (as an XML document).
*/
private Element loadConfig() throws ServletException {
diff --git a/src/opendap/gateway/GatewayForm.java b/src/opendap/gateway/GatewayForm.java
index 3e7d36872..5cf803005 100644
--- a/src/opendap/gateway/GatewayForm.java
+++ b/src/opendap/gateway/GatewayForm.java
@@ -30,9 +30,9 @@
import opendap.coreServlet.HttpResponder;
import org.slf4j.Logger;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.util.Date;
/**
diff --git a/src/opendap/hai/BesControlApi.java b/src/opendap/hai/BesControlApi.java
index 77b56976a..505934313 100644
--- a/src/opendap/hai/BesControlApi.java
+++ b/src/opendap/hai/BesControlApi.java
@@ -41,8 +41,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.PrintWriter;
diff --git a/src/opendap/hai/DispatchServlet.java b/src/opendap/hai/DispatchServlet.java
index 46a0b77d2..85cfa90d9 100644
--- a/src/opendap/hai/DispatchServlet.java
+++ b/src/opendap/hai/DispatchServlet.java
@@ -33,9 +33,9 @@
import org.jdom.input.SAXBuilder;
import org.slf4j.Logger;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -94,7 +94,7 @@ public void init() {
* Loads the configuration file specified in the servlet parameter
* ConfigFileName.
*
- * @throws javax.servlet.ServletException When the file is missing, unreadable, or fails
+ * @throws jakarta.servlet.ServletException When the file is missing, unreadable, or fails
* to parse (as an XML document).
*/
private Document loadConfig() throws ServletException {
@@ -304,14 +304,14 @@ public void doPost(HttpServletRequest request,
*
* This override checks to see if we are in secure mode and if not send a forbidden error.
*
- * @param req Same as for javax.servlet.http.HttpServlet.service()
- * @param resp Same as for javax.servlet.http.HttpServlet.service()
- * @throws javax.servlet.ServletException Same as for javax.servlet.http.HttpServlet.service()
- * @throws java.io.IOException Same as for javax.servlet.http.HttpServlet.service()
+ * @param req Same as for jakarta.servlet.http.HttpServlet.service()
+ * @param resp Same as for jakarta.servlet.http.HttpServlet.service()
+ * @throws jakarta.servlet.ServletException Same as for jakarta.servlet.http.HttpServlet.service()
+ * @throws java.io.IOException Same as for jakarta.servlet.http.HttpServlet.service()
*/
@Override
- protected void service(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)
- throws javax.servlet.ServletException, java.io.IOException {
+ protected void service(jakarta.servlet.http.HttpServletRequest req, jakarta.servlet.http.HttpServletResponse resp)
+ throws jakarta.servlet.ServletException, java.io.IOException {
if (!req.isSecure()) {
if(!_devMode) {
diff --git a/src/opendap/hai/OlfsControlApi.java b/src/opendap/hai/OlfsControlApi.java
index 101b239fc..029d45892 100644
--- a/src/opendap/hai/OlfsControlApi.java
+++ b/src/opendap/hai/OlfsControlApi.java
@@ -40,8 +40,8 @@
import org.apache.commons.text.StringEscapeUtils;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
diff --git a/src/opendap/hai/Util.java b/src/opendap/hai/Util.java
index 1ba7fc487..e8227ada3 100644
--- a/src/opendap/hai/Util.java
+++ b/src/opendap/hai/Util.java
@@ -29,7 +29,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/opendap/http/Util.java b/src/opendap/http/Util.java
index b1f2ba08c..74b2668c6 100644
--- a/src/opendap/http/Util.java
+++ b/src/opendap/http/Util.java
@@ -41,8 +41,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
diff --git a/src/opendap/http/error/BadGateway.java b/src/opendap/http/error/BadGateway.java
index 08a1a1e46..007bd10d3 100644
--- a/src/opendap/http/error/BadGateway.java
+++ b/src/opendap/http/error/BadGateway.java
@@ -2,7 +2,7 @@
import opendap.coreServlet.OPeNDAPException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
/**
* The server encountered an unexpected condition which prevented it from fulfilling the request.
diff --git a/src/opendap/http/error/BadRequest.java b/src/opendap/http/error/BadRequest.java
index 0ad00b0a7..acb464846 100644
--- a/src/opendap/http/error/BadRequest.java
+++ b/src/opendap/http/error/BadRequest.java
@@ -27,7 +27,7 @@
import opendap.coreServlet.OPeNDAPException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
/**
* The request could not be understood by the server due to malformed syntax.
diff --git a/src/opendap/http/error/Forbidden.java b/src/opendap/http/error/Forbidden.java
index 5d60cd1fe..b4e18e4cd 100644
--- a/src/opendap/http/error/Forbidden.java
+++ b/src/opendap/http/error/Forbidden.java
@@ -27,7 +27,7 @@
import opendap.coreServlet.OPeNDAPException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
/**
* The server understood the request, but is refusing to fulfill it. Authorization will
diff --git a/src/opendap/http/error/InternalError.java b/src/opendap/http/error/InternalError.java
index 0e8283c4a..3ffbe2601 100644
--- a/src/opendap/http/error/InternalError.java
+++ b/src/opendap/http/error/InternalError.java
@@ -2,7 +2,7 @@
import opendap.coreServlet.OPeNDAPException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
/**
* The server encountered an unexpected condition which prevented it from fulfilling the request.
diff --git a/src/opendap/http/error/NotAcceptable.java b/src/opendap/http/error/NotAcceptable.java
index 51c9400a1..71a8c6b5a 100644
--- a/src/opendap/http/error/NotAcceptable.java
+++ b/src/opendap/http/error/NotAcceptable.java
@@ -27,7 +27,7 @@
import opendap.coreServlet.OPeNDAPException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
/**
* The resource identified by the request is only capable of generating
diff --git a/src/opendap/http/error/NotFound.java b/src/opendap/http/error/NotFound.java
index 2643b7e25..3a5c916bb 100644
--- a/src/opendap/http/error/NotFound.java
+++ b/src/opendap/http/error/NotFound.java
@@ -27,7 +27,7 @@
import opendap.coreServlet.OPeNDAPException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
/**
* The server has not found anything matching the Request-URI. No indication is
diff --git a/src/opendap/http/error/NotImplemented.java b/src/opendap/http/error/NotImplemented.java
index f32be6a9d..582dc9ed4 100644
--- a/src/opendap/http/error/NotImplemented.java
+++ b/src/opendap/http/error/NotImplemented.java
@@ -2,7 +2,7 @@
import opendap.coreServlet.OPeNDAPException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
/**
* The server does not support the functionality required to fulfill the request. This is the appropriate response when the server does not recognize the request method and is not capable of supporting it for any resource.
diff --git a/src/opendap/http/error/Unauthorized.java b/src/opendap/http/error/Unauthorized.java
index 3567c4ab0..82a414680 100644
--- a/src/opendap/http/error/Unauthorized.java
+++ b/src/opendap/http/error/Unauthorized.java
@@ -27,7 +27,7 @@
import opendap.coreServlet.OPeNDAPException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
/**
* The request requires user authentication. The response MUST include a
diff --git a/src/opendap/logging/ServletLogUtil.java b/src/opendap/logging/ServletLogUtil.java
index 77080a910..0a8137848 100644
--- a/src/opendap/logging/ServletLogUtil.java
+++ b/src/opendap/logging/ServletLogUtil.java
@@ -39,10 +39,10 @@
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import java.io.File;
import java.io.PrintWriter;
import java.io.StringWriter;
diff --git a/src/opendap/nciso/IsoDispatchHandler.java b/src/opendap/nciso/IsoDispatchHandler.java
index 8eb1b12c8..504855466 100644
--- a/src/opendap/nciso/IsoDispatchHandler.java
+++ b/src/opendap/nciso/IsoDispatchHandler.java
@@ -39,10 +39,10 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.regex.Pattern;
diff --git a/src/opendap/nciso/RubricDispatchHandler.java b/src/opendap/nciso/RubricDispatchHandler.java
index fd3ff4d7c..8a6a768b4 100644
--- a/src/opendap/nciso/RubricDispatchHandler.java
+++ b/src/opendap/nciso/RubricDispatchHandler.java
@@ -40,10 +40,10 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.regex.Pattern;
diff --git a/src/opendap/ncml/NcmlDatasetDispatcher.java b/src/opendap/ncml/NcmlDatasetDispatcher.java
index 5a71888f4..b8877e63f 100644
--- a/src/opendap/ncml/NcmlDatasetDispatcher.java
+++ b/src/opendap/ncml/NcmlDatasetDispatcher.java
@@ -33,9 +33,9 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
/**
* Ncml Dataset handler responses for Hyrax. Massages NcML content retrieved from the BES
diff --git a/src/opendap/ngap/NgapBesApi.java b/src/opendap/ngap/NgapBesApi.java
index 6de30dda9..e6dcabcc9 100644
--- a/src/opendap/ngap/NgapBesApi.java
+++ b/src/opendap/ngap/NgapBesApi.java
@@ -47,7 +47,7 @@
import org.jdom.JDOMException;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.OutputStream;
import java.text.ParseException;
diff --git a/src/opendap/ngap/NgapDapDispatcher.java b/src/opendap/ngap/NgapDapDispatcher.java
index 5b7d3895d..70de95a6a 100644
--- a/src/opendap/ngap/NgapDapDispatcher.java
+++ b/src/opendap/ngap/NgapDapDispatcher.java
@@ -37,10 +37,10 @@
import org.jdom.Element;
import org.slf4j.Logger;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Vector;
import java.util.concurrent.atomic.AtomicLong;
diff --git a/src/opendap/ngap/NgapDmrppResponder.java b/src/opendap/ngap/NgapDmrppResponder.java
index 0449a0309..a044e818e 100644
--- a/src/opendap/ngap/NgapDmrppResponder.java
+++ b/src/opendap/ngap/NgapDmrppResponder.java
@@ -37,8 +37,8 @@
import opendap.logging.ServletLogUtil;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
diff --git a/src/opendap/ppt/PPTException.java b/src/opendap/ppt/PPTException.java
index c0d705f41..bff984957 100644
--- a/src/opendap/ppt/PPTException.java
+++ b/src/opendap/ppt/PPTException.java
@@ -30,7 +30,7 @@
import opendap.coreServlet.OPeNDAPException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
/**
* Exception used with DODS client and server request handline.
diff --git a/src/opendap/services/FileService.java b/src/opendap/services/FileService.java
index 8006a8e19..d66f12869 100644
--- a/src/opendap/services/FileService.java
+++ b/src/opendap/services/FileService.java
@@ -29,7 +29,7 @@
import org.jdom.Document;
import org.jdom.Element;
-import javax.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServlet;
/**
* Created by ndp on 4/21/15.
diff --git a/src/opendap/services/WebServiceHandler.java b/src/opendap/services/WebServiceHandler.java
index ddf4b402f..908248a27 100644
--- a/src/opendap/services/WebServiceHandler.java
+++ b/src/opendap/services/WebServiceHandler.java
@@ -29,8 +29,8 @@
import org.jdom.Document;
import org.jdom.Element;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
/**
* Created with IntelliJ IDEA.
diff --git a/src/opendap/threddsHandler/SimpleWebServiceHandler.java b/src/opendap/threddsHandler/SimpleWebServiceHandler.java
index c265ebee3..03a99c69b 100644
--- a/src/opendap/threddsHandler/SimpleWebServiceHandler.java
+++ b/src/opendap/threddsHandler/SimpleWebServiceHandler.java
@@ -31,7 +31,7 @@
import org.jdom.Document;
import org.jdom.Element;
-import javax.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServlet;
/**
diff --git a/src/opendap/threddsHandler/StaticCatalogDispatch.java b/src/opendap/threddsHandler/StaticCatalogDispatch.java
index 1ed2ab25c..0ab3673ab 100644
--- a/src/opendap/threddsHandler/StaticCatalogDispatch.java
+++ b/src/opendap/threddsHandler/StaticCatalogDispatch.java
@@ -45,9 +45,9 @@
import org.jdom.JDOMException;
import org.slf4j.Logger;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import javax.xml.transform.stream.StreamSource;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
diff --git a/src/opendap/viewers/GodivaWebService.java b/src/opendap/viewers/GodivaWebService.java
index 8591f1abf..f2e8ee74e 100644
--- a/src/opendap/viewers/GodivaWebService.java
+++ b/src/opendap/viewers/GodivaWebService.java
@@ -31,8 +31,8 @@
import org.jdom.Document;
import org.jdom.Element;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
/**
* Created with IntelliJ IDEA.
diff --git a/src/opendap/viewers/NcWmsService.java b/src/opendap/viewers/NcWmsService.java
index c0adccb4a..2676a16df 100644
--- a/src/opendap/viewers/NcWmsService.java
+++ b/src/opendap/viewers/NcWmsService.java
@@ -30,8 +30,8 @@
import org.jdom.Document;
import org.jdom.Element;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
/**
* Created with IntelliJ IDEA.
diff --git a/src/opendap/viewers/ViewersServlet.java b/src/opendap/viewers/ViewersServlet.java
index b9f61b0f7..cbabbb8ec 100644
--- a/src/opendap/viewers/ViewersServlet.java
+++ b/src/opendap/viewers/ViewersServlet.java
@@ -53,10 +53,10 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import javax.xml.transform.stream.StreamSource;
import java.io.*;
import java.net.URL;
@@ -216,7 +216,7 @@ private Document loadConfig(String configFileName) throws ServletException {
* calling their init() methods and passing into them the XML Element
* that defined them from the config document.
*
- * @throws javax.servlet.ServletException When things go poorly
+ * @throws jakarta.servlet.ServletException When things go poorly
*/
private void buildJwsHandlers(String resourcesDir, Element webStartConfig)
throws ServletException {
@@ -285,7 +285,7 @@ private void buildJwsHandlers(String resourcesDir, Element webStartConfig)
* that defined them from the config document.
*
* @return A VEector of JwsHandlers that have been intialized and are ready to use.
- * @throws javax.servlet.ServletException When things go poorly
+ * @throws jakarta.servlet.ServletException When things go poorly
*/
private void buildWebServiceHandlers(String resourcesDir, Element webStartConfig) throws ServletException {
diff --git a/src/opendap/viewers/WcsService.java b/src/opendap/viewers/WcsService.java
index 3ae6f2a23..8cd3b93b8 100644
--- a/src/opendap/viewers/WcsService.java
+++ b/src/opendap/viewers/WcsService.java
@@ -7,8 +7,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Vector;
diff --git a/src/opendap/w10n/W10nRequest.java b/src/opendap/w10n/W10nRequest.java
index 6316cc407..83c7145fb 100644
--- a/src/opendap/w10n/W10nRequest.java
+++ b/src/opendap/w10n/W10nRequest.java
@@ -35,7 +35,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import java.util.Map;
import java.util.TreeMap;
import java.util.TreeSet;
diff --git a/src/opendap/w10n/W10nResponder.java b/src/opendap/w10n/W10nResponder.java
index 342abdc8f..a1a53d794 100644
--- a/src/opendap/w10n/W10nResponder.java
+++ b/src/opendap/w10n/W10nResponder.java
@@ -53,9 +53,9 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.*;
diff --git a/src/opendap/w10n/W10nService.java b/src/opendap/w10n/W10nService.java
index 85600b3c1..6c8be96b3 100644
--- a/src/opendap/w10n/W10nService.java
+++ b/src/opendap/w10n/W10nService.java
@@ -30,7 +30,7 @@
import org.jdom.Document;
import org.jdom.Element;
-import javax.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServlet;
/**
* Created by ndp on 4/15/15.
diff --git a/src/opendap/w10n/W10nServlet.java b/src/opendap/w10n/W10nServlet.java
index 16485fdec..5e0cf6eba 100644
--- a/src/opendap/w10n/W10nServlet.java
+++ b/src/opendap/w10n/W10nServlet.java
@@ -33,10 +33,10 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;
import java.util.concurrent.atomic.AtomicInteger;
@@ -60,7 +60,7 @@ public class W10nServlet extends HttpServlet {
/**
* ************************************************************************
*
- * @throws javax.servlet.ServletException
+ * @throws jakarta.servlet.ServletException
*/
@Override
public void init() throws ServletException {
diff --git a/src/opendap/wcs/v2_0/GetCoverageRequestProcessor.java b/src/opendap/wcs/v2_0/GetCoverageRequestProcessor.java
index fda7468be..ce7f15d19 100644
--- a/src/opendap/wcs/v2_0/GetCoverageRequestProcessor.java
+++ b/src/opendap/wcs/v2_0/GetCoverageRequestProcessor.java
@@ -47,7 +47,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
diff --git a/src/opendap/wcs/v2_0/WcsException.java b/src/opendap/wcs/v2_0/WcsException.java
index 03214715f..8258f77d8 100755
--- a/src/opendap/wcs/v2_0/WcsException.java
+++ b/src/opendap/wcs/v2_0/WcsException.java
@@ -27,7 +27,7 @@
import org.jdom.Element;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
/**
* WCS exceptions
diff --git a/src/opendap/wcs/v2_0/WcsServiceManager.java b/src/opendap/wcs/v2_0/WcsServiceManager.java
index 05f3a883a..5ba5f2538 100644
--- a/src/opendap/wcs/v2_0/WcsServiceManager.java
+++ b/src/opendap/wcs/v2_0/WcsServiceManager.java
@@ -34,7 +34,7 @@
import org.jdom.input.SAXBuilder;
import org.slf4j.Logger;
-import javax.servlet.ServletException;
+import jakarta.servlet.ServletException;
import java.io.File;
import java.io.IOException;
import java.util.Date;
diff --git a/src/opendap/wcs/v2_0/http/Attachment.java b/src/opendap/wcs/v2_0/http/Attachment.java
index 388c61aef..aa08952e0 100644
--- a/src/opendap/wcs/v2_0/http/Attachment.java
+++ b/src/opendap/wcs/v2_0/http/Attachment.java
@@ -37,7 +37,7 @@
import org.jdom.output.XMLOutputter;
import org.slf4j.Logger;
-import javax.servlet.ServletOutputStream;
+import jakarta.servlet.ServletOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
diff --git a/src/opendap/wcs/v2_0/http/FormHandler.java b/src/opendap/wcs/v2_0/http/FormHandler.java
index a5274b214..3f2a1d9a4 100644
--- a/src/opendap/wcs/v2_0/http/FormHandler.java
+++ b/src/opendap/wcs/v2_0/http/FormHandler.java
@@ -29,8 +29,8 @@
import opendap.wcs.v2_0.WcsException;
import org.jdom.Element;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
import java.io.*;
import java.net.URLDecoder;
diff --git a/src/opendap/wcs/v2_0/http/HttpGetHandler.java b/src/opendap/wcs/v2_0/http/HttpGetHandler.java
index 4293fcbbc..6d950c8cf 100644
--- a/src/opendap/wcs/v2_0/http/HttpGetHandler.java
+++ b/src/opendap/wcs/v2_0/http/HttpGetHandler.java
@@ -43,11 +43,11 @@
import org.jdom.output.XMLOutputter;
import org.slf4j.Logger;
-import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import javax.xml.transform.stream.StreamSource;
import java.io.ByteArrayInputStream;
import java.io.IOException;
diff --git a/src/opendap/wcs/v2_0/http/KvpHandler.java b/src/opendap/wcs/v2_0/http/KvpHandler.java
index 06113e226..39974104d 100644
--- a/src/opendap/wcs/v2_0/http/KvpHandler.java
+++ b/src/opendap/wcs/v2_0/http/KvpHandler.java
@@ -37,9 +37,9 @@
import org.jdom.output.XMLOutputter;
import org.slf4j.Logger;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/opendap/wcs/v2_0/http/MultipartResponse.java b/src/opendap/wcs/v2_0/http/MultipartResponse.java
index 11d4f2e23..08c978735 100644
--- a/src/opendap/wcs/v2_0/http/MultipartResponse.java
+++ b/src/opendap/wcs/v2_0/http/MultipartResponse.java
@@ -32,8 +32,8 @@
import opendap.ppt.PPTException;
import org.slf4j.Logger;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URISyntaxException;
import java.rmi.server.UID;
diff --git a/src/opendap/wcs/v2_0/http/Servlet.java b/src/opendap/wcs/v2_0/http/Servlet.java
index 1163d219f..876f04333 100644
--- a/src/opendap/wcs/v2_0/http/Servlet.java
+++ b/src/opendap/wcs/v2_0/http/Servlet.java
@@ -43,10 +43,10 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintStream;
diff --git a/src/opendap/wcs/v2_0/http/SoapHandler.java b/src/opendap/wcs/v2_0/http/SoapHandler.java
index 89748bf40..0ef9a2351 100644
--- a/src/opendap/wcs/v2_0/http/SoapHandler.java
+++ b/src/opendap/wcs/v2_0/http/SoapHandler.java
@@ -36,7 +36,7 @@
import org.jdom.Document;
import org.jdom.Element;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.List;
diff --git a/src/opendap/wcs/v2_0/http/Util.java b/src/opendap/wcs/v2_0/http/Util.java
index 51e10e3e8..c827b6dfa 100644
--- a/src/opendap/wcs/v2_0/http/Util.java
+++ b/src/opendap/wcs/v2_0/http/Util.java
@@ -30,7 +30,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
diff --git a/src/opendap/wcs/v2_0/http/XmlRequestHandler.java b/src/opendap/wcs/v2_0/http/XmlRequestHandler.java
index bc6e22beb..20ebaf4e2 100644
--- a/src/opendap/wcs/v2_0/http/XmlRequestHandler.java
+++ b/src/opendap/wcs/v2_0/http/XmlRequestHandler.java
@@ -43,10 +43,10 @@
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.ServletOutputStream;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLDecoder;
import java.util.Date;
diff --git a/src/opendap/webstart/ApplicationRegistry.java b/src/opendap/webstart/ApplicationRegistry.java
index 4abcd5574..0cf44afd5 100644
--- a/src/opendap/webstart/ApplicationRegistry.java
+++ b/src/opendap/webstart/ApplicationRegistry.java
@@ -29,7 +29,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.servlet.ServletException;
+import jakarta.servlet.ServletException;
import java.util.Vector;
/**
@@ -59,7 +59,7 @@ public static void init(String resourcesDir, Element webStartConfig) throws Serv
* that defined them from the config document.
*
* @return A VEector of JwsHandlers that have been intialized and are ready to use.
- * @throws javax.servlet.ServletException When things go poorly
+ * @throws jakarta.servlet.ServletException When things go poorly
*/
private static Vector buildJwsHandlers(String resourcesDir, Element webStartConfig) throws ServletException {