@Override public void parseResponse( ChallengeResponse challenge, Request request, Series<Header> httpHeaders) { if (challenge.getRawValue() != null) { HeaderReader<Object> hr = new HeaderReader<Object>(challenge.getRawValue()); try { Parameter param = hr.readParameter(); while (param != null) { try { if ("username".equals(param.getName())) { challenge.setIdentifier(param.getValue()); } else if ("realm".equals(param.getName())) { challenge.setRealm(param.getValue()); } else if ("nonce".equals(param.getName())) { challenge.setServerNonce(param.getValue()); } else if ("uri".equals(param.getName())) { challenge.setDigestRef(new Reference(param.getValue())); } else if ("response".equals(param.getName())) { challenge.setSecret(param.getValue()); } else if ("algorithm".equals(param.getName())) { challenge.setDigestAlgorithm(param.getValue()); } else if ("cnonce".equals(param.getName())) { challenge.setClientNonce(param.getValue()); } else if ("opaque".equals(param.getName())) { challenge.setOpaque(param.getValue()); } else if ("qop".equals(param.getName())) { challenge.setQuality(param.getValue()); } else if ("nc".equals(param.getName())) { challenge.setServerNounceCount(Integer.valueOf(param.getValue(), 16)); } else { challenge.getParameters().add(param); } } catch (Throwable e) { Context.getCurrentLogger() .log(Level.WARNING, "Unable to parse the challenge request header parameter", e); } if (hr.skipValueSeparator()) { param = hr.readParameter(); } else { param = null; } } } catch (Exception e) { Context.getCurrentLogger() .log(Level.WARNING, "Unable to parse the challenge request header parameter", e); } } }
@Override public void parseRequest( ChallengeRequest challenge, Response response, Series<Header> httpHeaders) { if (challenge.getRawValue() != null) { HeaderReader<Object> hr = new HeaderReader<Object>(challenge.getRawValue()); try { Parameter param = hr.readParameter(); while (param != null) { try { if ("realm".equals(param.getName())) { challenge.setRealm(param.getValue()); } else if ("domain".equals(param.getName())) { challenge.getDomainRefs().add(new Reference(param.getValue())); } else if ("nonce".equals(param.getName())) { challenge.setServerNonce(param.getValue()); } else if ("opaque".equals(param.getName())) { challenge.setOpaque(param.getValue()); } else if ("stale".equals(param.getName())) { challenge.setStale(Boolean.valueOf(param.getValue())); } else if ("algorithm".equals(param.getName())) { challenge.setDigestAlgorithm(param.getValue()); } else if ("qop".equals(param.getName())) { // challenge.setDigestAlgorithm(param.getValue()); } else { challenge.getParameters().add(param); } if (hr.skipValueSeparator()) { param = hr.readParameter(); } else { param = null; } } catch (Exception e) { Context.getCurrentLogger() .log(Level.WARNING, "Unable to parse the challenge request header parameter", e); } } } catch (Exception e) { Context.getCurrentLogger() .log(Level.WARNING, "Unable to parse the challenge request header parameter", e); } } }