/** * Creates a new challenge request. * * @param stale * Indicates if the new challenge is due to a stale response. * @return A new challenge request. */ protected ChallengeRequest createChallengeRequest(boolean stale) { return new ChallengeRequest(getScheme(), getRealm()); }
/** {@inheritDoc} */ @Override public boolean equals(final Object obj) { if (obj == this) { return true; } if (!(obj instanceof ChallengeRequest)) { return false; } final ChallengeRequest that = (ChallengeRequest) obj; return getParameters().equals(that.getParameters()) && Objects.equals(getRealm(), that.getRealm()) && Objects.equals(getScheme(), that.getScheme()); }
public static String formatRequest(ChallengeRequest challenge, Response response, Series<Header> httpHeaders) { String result = null; if (challenge == null) { Context.getCurrentLogger().warning( "No challenge response to format."); } else if (challenge.getScheme() == null) { Context.getCurrentLogger().warning( "A challenge response must have a scheme defined."); } else if (challenge.getScheme().getTechnicalName() == null) { Context.getCurrentLogger().warning( "A challenge scheme must have a technical name defined."); } else { ChallengeWriter cw = new ChallengeWriter(); cw.append(challenge.getScheme().getTechnicalName()).appendSpace(); int cwInitialLength = cw.getBuffer().length(); if (challenge.getRawValue() != null) { cw.append(challenge.getRawValue()); } else { (...)
@Override public void parseRequest(ChallengeRequest challenge, Response response, Series<Header> httpHeaders) { String raw = challenge.getRawValue(); String value = realm.substring(eq + 1).trim(); challenge.setRealm(value.substring(1, value.length() - 1)); challenge.setParameters(params);
if (challengeResponse.getScheme().equals(c.getScheme())) { challengeRequest = c; break; realm = challengeRequest.getRealm(); nonce = challengeRequest.getServerNonce(); challengeResponse.setOpaque(challengeRequest.getOpaque());
private static ChallengeRequest getDigestChallengeRequest(ClientResource cr) { ChallengeRequest c1 = null; for (ChallengeRequest challengeRequest : cr.getChallengeRequests()) { if (ChallengeScheme.HTTP_DIGEST .equals(challengeRequest.getScheme())) { c1 = challengeRequest; break; } } return c1; } }
@Override public void parseRequest(ChallengeRequest challenge, Response response, Series<Header> httpHeaders) { if (challenge.getRawValue() != null) { HeaderReader<Object> hr = new HeaderReader<Object>( challenge.getRawValue()); try { if ("realm".equals(param.getName())) { challenge.setRealm(param.getValue()); } else { challenge.getParameters().add(param);
@Override public void formatRequest(ChallengeWriter cw, ChallengeRequest challenge, Response response, Series<Header> httpHeaders) throws IOException { // Format the parameters WWW-Authenticate: OAuth realm='Example // Service', error='expired-token' cw.append("realm='"); cw.append(challenge.getRealm()); cw.append("'"); for (Parameter p : challenge.getParameters()) { cw.append(", "); cw.append(p.getName()); cw.append("='"); cw.append(p.getValue()); cw.append("'"); } }
if (peek() != -1) { String scheme = readToken(); result = new ChallengeRequest(new ChallengeScheme("HTTP_" + scheme, scheme)); skipSpaces(); result.setRawValue(w.toString()); w.close();
@Override public void formatRequest(ChallengeWriter cw, ChallengeRequest challenge, Response response, Series<Header> httpHeaders) throws IOException { if (challenge.getRealm() != null) { cw.appendQuotedChallengeParameter("realm", challenge.getRealm()); } else { getLogger() .warning( "The realm directive is required for all authentication schemes that issue a challenge."); } }
/** * Constructor. It leverages the latest server response and challenge * request in order to compute the credentials. * * @param challengeRequest * The challenge request sent by the origin server. * @param response * The latest server response. * @param identifier * The user identifier, such as a login name or an access key. * @param secret * The user secret used to compute the secret, with an optional * digest applied. * @param secretAlgorithm * The digest algorithm of the user secret (see {@link Digest} class). */ public ChallengeResponse(ChallengeRequest challengeRequest, Response response, String identifier, char[] secret, String secretAlgorithm) { this(challengeRequest.getScheme(), null, identifier, secret, secretAlgorithm, null, null, null, null, null, null, null, 0, 0L); org.restlet.engine.security.AuthenticatorUtils.update(this, response.getRequest(), response); }
/** {@inheritDoc} */ @Override public int hashCode() { return Engine.hashCode(getScheme(), getRealm(), getParameters()); }
res.getChallengeRequests().add(new ChallengeRequest(challengeScheme, realm));
Context.getCurrentLogger().warning( "No challenge response to format."); } else if (challenge.getScheme() == null) { Context.getCurrentLogger().warning( "A challenge response must have a scheme defined."); } else if (challenge.getScheme().getTechnicalName() == null) { Context.getCurrentLogger().warning( "A challenge scheme must have a technical name defined."); } else { ChallengeWriter cw = new ChallengeWriter(); cw.append(challenge.getScheme().getTechnicalName()).appendSpace(); int cwInitialLength = cw.getBuffer().length(); if (challenge.getRawValue() != null) { cw.append(challenge.getRawValue()); } else { AuthenticatorHelper helper = Engine.getInstance().findHelper( challenge.getScheme(), false, true); result = "?"; Context.getCurrentLogger().warning( "Challenge scheme " + challenge.getScheme() + " not supported by the Restlet engine.");
/** {@inheritDoc} */ @Override public final boolean equals(final Object obj) { boolean result = (obj == this); // if obj == this no need to go further if (!result) { // if obj isn't a challenge request or is null don't evaluate // further if (obj instanceof ChallengeRequest) { final ChallengeRequest that = (ChallengeRequest) obj; result = (getParameters().equals(that.getParameters())); if (result) { if (getRealm() != null) { result = getRealm().equals(that.getRealm()); } else { result = (that.getRealm() == null); } if (result) { if (getScheme() != null) { result = getScheme().equals(that.getScheme()); } else { result = (that.getScheme() == null); } } } } } return result; }
res.getChallengeRequests().add( new ChallengeRequest( challengeScheme, realm ) );
public static ChallengeResponse getTestChallengeResponse(final List<ChallengeRequest> list, final ChallengeScheme httpDigest, final Response response, final String userName, final char[] password) { ChallengeRequest c1 = null; for(final ChallengeRequest challengeRequest : list) { if(ChallengeScheme.HTTP_DIGEST.equals(challengeRequest.getScheme())) { c1 = challengeRequest; break; } } // 2- Create the Challenge response used by the client to authenticate its requests. final ChallengeResponse challengeResponse = new ChallengeResponse(c1, response, userName, password); return challengeResponse; }
response.setChallengeRequest( new ChallengeRequest( ChallengeScheme.HTTP_BASIC, "Sonatype Nexus Repository Manager" ) );
.getChallengeRequests()) { if (ChallengeScheme.HTTP_DIGEST.equals(challengeRequest .getScheme())) { digestChallenge = challengeRequest; break;