Skip to content

Instantly share code, notes, and snippets.

@ophers
Last active August 29, 2015 14:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ophers/1a810a6ca90b1448c1e6 to your computer and use it in GitHub Desktop.
Save ophers/1a810a6ca90b1448c1e6 to your computer and use it in GitHub Desktop.
Patch for Jersey httpsclientservergrizzly example
--- src\main\java\org\glassfish\jersey\examples\httpsclientservergrizzly\RootResource.java 2015-03-11 12:39:44.000000000 +0300
+++ src\org\glassfish\jersey\examples\httpsclientservergrizzly\RootResource.java 2015-04-08 14:39:35.489000000 +0300
@@ -40,7 +40,8 @@
package org.glassfish.jersey.examples.httpsclientservergrizzly;
-import org.glassfish.jersey.internal.util.Base64;
+import java.nio.charset.Charset;
+import javax.xml.bind.DatatypeConverter;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
@@ -73,7 +74,7 @@
String auth = headers.getRequestHeader("authorization").get(0);
auth = auth.substring("Basic ".length());
- String[] values = new String(Base64.decodeAsString(auth)).split(":");
+ String[] values = new String(DatatypeConverter.parseBase64Binary(auth), Charset.forName("ASCII")).split(":");
// String username = values[0];
// String password = values[1];
--- src\main\java\org\glassfish\jersey\examples\httpsclientservergrizzly\SecurityFilter.java 2015-03-11 12:39:44.000000000 +0300
+++ src\org\glassfish\jersey\examples\httpsclientservergrizzly\SecurityFilter.java 2015-04-08 01:02:05.224000000 +0300
@@ -47,15 +47,14 @@
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.container.PreMatching;
import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.Request;
import javax.ws.rs.core.SecurityContext;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.ext.Provider;
import javax.inject.Inject;
-import org.glassfish.jersey.internal.util.Base64;
-import org.glassfish.jersey.server.ContainerRequest;
+import java.nio.charset.Charset;
+import javax.xml.bind.DatatypeConverter;
/**
* Simple authentication filter.
@@ -75,13 +74,13 @@
@Override
public void filter(ContainerRequestContext filterContext) throws IOException {
- User user = authenticate(filterContext.getRequest());
+ User user = authenticate(filterContext);
filterContext.setSecurityContext(new Authorizer(user));
}
- private User authenticate(Request request) {
+ private User authenticate(ContainerRequestContext filterContext) {
// Extract authentication credentials
- String authentication = ((ContainerRequest) request).getHeaderString(HttpHeaders.AUTHORIZATION);
+ String authentication = filterContext.getHeaderString(HttpHeaders.AUTHORIZATION);
if (authentication == null) {
throw new AuthenticationException("Authentication credentials are required", REALM);
}
@@ -91,7 +90,7 @@
// "Only HTTP Basic authentication is supported"
}
authentication = authentication.substring("Basic ".length());
- String[] values = Base64.decodeAsString(authentication).split(":");
+ String[] values = new String(DatatypeConverter.parseBase64Binary(authentication), Charset.forName("ASCII")).split(":");
if (values.length < 2) {
throw new WebApplicationException(400);
// "Invalid syntax for username and password"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment