Skip to content
This repository was archived by the owner on May 28, 2018. It is now read-only.

Commit 02704c0

Browse files
author
Adam Lindenthal
committed
Merge pull request #166 from ophers/patch-https-clientserver-grizzly
Patch https clientserver grizzly
2 parents efcb33e + 8ebd46e commit 02704c0

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

examples/https-clientserver-grizzly/src/main/java/org/glassfish/jersey/examples/httpsclientservergrizzly/RootResource.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
33
*
4-
* Copyright (c) 2010-2012 Oracle and/or its affiliates. All rights reserved.
4+
* Copyright (c) 2010-2015 Oracle and/or its affiliates. All rights reserved.
55
*
66
* The contents of this file are subject to the terms of either the GNU
77
* General Public License Version 2 only ("GPL") or the Common Development
@@ -40,7 +40,8 @@
4040

4141
package org.glassfish.jersey.examples.httpsclientservergrizzly;
4242

43-
import org.glassfish.jersey.internal.util.Base64;
43+
import java.nio.charset.Charset;
44+
import javax.xml.bind.DatatypeConverter;
4445

4546
import javax.ws.rs.GET;
4647
import javax.ws.rs.Path;
@@ -73,7 +74,7 @@ private String getUser(HttpHeaders headers) {
7374
String auth = headers.getRequestHeader("authorization").get(0);
7475

7576
auth = auth.substring("Basic ".length());
76-
String[] values = new String(Base64.decodeAsString(auth)).split(":");
77+
String[] values = new String(DatatypeConverter.parseBase64Binary(auth), Charset.forName("ASCII")).split(":");
7778

7879
// String username = values[0];
7980
// String password = values[1];

examples/https-clientserver-grizzly/src/main/java/org/glassfish/jersey/examples/httpsclientservergrizzly/SecurityFilter.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
33
*
4-
* Copyright (c) 2010-2012 Oracle and/or its affiliates. All rights reserved.
4+
* Copyright (c) 2010-2015 Oracle and/or its affiliates. All rights reserved.
55
*
66
* The contents of this file are subject to the terms of either the GNU
77
* General Public License Version 2 only ("GPL") or the Common Development
@@ -47,15 +47,14 @@
4747
import javax.ws.rs.container.ContainerRequestFilter;
4848
import javax.ws.rs.container.PreMatching;
4949
import javax.ws.rs.core.HttpHeaders;
50-
import javax.ws.rs.core.Request;
5150
import javax.ws.rs.core.SecurityContext;
5251
import javax.ws.rs.core.UriInfo;
5352
import javax.ws.rs.ext.Provider;
5453

5554
import javax.inject.Inject;
5655

57-
import org.glassfish.jersey.internal.util.Base64;
58-
import org.glassfish.jersey.server.ContainerRequest;
56+
import java.nio.charset.Charset;
57+
import javax.xml.bind.DatatypeConverter;
5958

6059
/**
6160
* Simple authentication filter.
@@ -75,13 +74,13 @@ public class SecurityFilter implements ContainerRequestFilter {
7574

7675
@Override
7776
public void filter(ContainerRequestContext filterContext) throws IOException {
78-
User user = authenticate(filterContext.getRequest());
77+
User user = authenticate(filterContext);
7978
filterContext.setSecurityContext(new Authorizer(user));
8079
}
8180

82-
private User authenticate(Request request) {
81+
private User authenticate(ContainerRequestContext filterContext) {
8382
// Extract authentication credentials
84-
String authentication = ((ContainerRequest) request).getHeaderString(HttpHeaders.AUTHORIZATION);
83+
String authentication = filterContext.getHeaderString(HttpHeaders.AUTHORIZATION);
8584
if (authentication == null) {
8685
throw new AuthenticationException("Authentication credentials are required", REALM);
8786
}
@@ -91,7 +90,7 @@ private User authenticate(Request request) {
9190
// "Only HTTP Basic authentication is supported"
9291
}
9392
authentication = authentication.substring("Basic ".length());
94-
String[] values = Base64.decodeAsString(authentication).split(":");
93+
String[] values = new String(DatatypeConverter.parseBase64Binary(authentication), Charset.forName("ASCII")).split(":");
9594
if (values.length < 2) {
9695
throw new WebApplicationException(400);
9796
// "Invalid syntax for username and password"

0 commit comments

Comments
 (0)