Search in sources :

Example 1 with DigestResource

use of io.milton.resource.DigestResource in project lobcder by skoulouzis.

the class DigestAuthenticationHandler method authenticate.

@Override
public Object authenticate(Resource r, Request request) {
    DigestResource digestResource = (DigestResource) r;
    Auth auth = request.getAuthorization();
    String realm = r.getRealm();
    if (realm == null) {
        throw new NullPointerException("Got null realm from resource: " + r.getClass());
    }
    DigestResponse resp = digestHelper.calculateResponse(auth, realm, request.getMethod());
    if (resp == null) {
        log.info("requested digest authentication is invalid or incorrectly formatted");
        return null;
    } else {
        Object o = digestResource.authenticate(resp);
        if (o == null) {
            log.info("digest authentication failed from resource: " + digestResource.getClass() + " - " + digestResource.getName() + " for user: " + resp.getUser());
        }
        return o;
    }
}
Also used : DigestResource(io.milton.resource.DigestResource) Auth(io.milton.http.Auth)

Example 2 with DigestResource

use of io.milton.resource.DigestResource in project lobcder by skoulouzis.

the class DigestAuthenticationHandler method supports.

@Override
public boolean supports(Resource r, Request request) {
    Auth auth = request.getAuthorization();
    if (auth == null) {
        return false;
    }
    boolean b;
    if (r instanceof DigestResource) {
        DigestResource dr = (DigestResource) r;
        if (dr.isDigestAllowed()) {
            b = Auth.Scheme.DIGEST.equals(auth.getScheme());
        } else {
            log.trace("digest auth is not allowed");
            b = false;
        }
    } else {
        log.trace("resource is not an instanceof DigestResource");
        b = false;
    }
    return b;
}
Also used : DigestResource(io.milton.resource.DigestResource) Auth(io.milton.http.Auth)

Aggregations

Auth (io.milton.http.Auth)2 DigestResource (io.milton.resource.DigestResource)2