Merge "Fix domain field of HTTP digest authentication"
This commit is contained in:
@@ -105,7 +105,7 @@ class ProjectDigestFilter implements Filter {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Response rsp = new Response((HttpServletResponse) response);
|
Response rsp = new Response(req, (HttpServletResponse) response);
|
||||||
|
|
||||||
if (verify(req, rsp)) {
|
if (verify(req, rsp)) {
|
||||||
chain.doFilter(req, rsp);
|
chain.doFilter(req, rsp);
|
||||||
@@ -281,10 +281,6 @@ class ProjectDigestFilter implements Filter {
|
|||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getDomain() {
|
|
||||||
return urlProvider.get() + "p/";
|
|
||||||
}
|
|
||||||
|
|
||||||
private String newNonce() {
|
private String newNonce() {
|
||||||
try {
|
try {
|
||||||
return tokens.newToken("");
|
return tokens.newToken("");
|
||||||
@@ -295,11 +291,12 @@ class ProjectDigestFilter implements Filter {
|
|||||||
|
|
||||||
class Response extends HttpServletResponseWrapper {
|
class Response extends HttpServletResponseWrapper {
|
||||||
private static final String WWW_AUTHENTICATE = "WWW-Authenticate";
|
private static final String WWW_AUTHENTICATE = "WWW-Authenticate";
|
||||||
|
private final HttpServletRequest req;
|
||||||
Boolean stale;
|
Boolean stale;
|
||||||
|
|
||||||
Response(HttpServletResponse rsp) {
|
Response(HttpServletRequest req, HttpServletResponse rsp) {
|
||||||
super(rsp);
|
super(rsp);
|
||||||
|
this.req = req;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void status(int sc) {
|
private void status(int sc) {
|
||||||
@@ -307,7 +304,18 @@ class ProjectDigestFilter implements Filter {
|
|||||||
StringBuilder v = new StringBuilder();
|
StringBuilder v = new StringBuilder();
|
||||||
v.append("Digest");
|
v.append("Digest");
|
||||||
v.append(" realm=\"" + REALM_NAME + "\"");
|
v.append(" realm=\"" + REALM_NAME + "\"");
|
||||||
v.append(", domain=\"" + getDomain() + "\"");
|
|
||||||
|
String url = urlProvider.get();
|
||||||
|
if (url == null) {
|
||||||
|
url = req.getContextPath();
|
||||||
|
if (url != null && !url.isEmpty() && !url.endsWith("/")) {
|
||||||
|
url += "/";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (url != null && !url.isEmpty()) {
|
||||||
|
v.append(", domain=\"" + url + "\"");
|
||||||
|
}
|
||||||
|
|
||||||
v.append(", qop=\"auth\"");
|
v.append(", qop=\"auth\"");
|
||||||
if (stale != null) {
|
if (stale != null) {
|
||||||
v.append(", stale=" + stale);
|
v.append(", stale=" + stale);
|
||||||
|
Reference in New Issue
Block a user