Search in sources :

Example 1 with Auth

use of io.milton.http.Auth in project polymap4-core by Polymap4.

the class WebDavServer method service.

public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
    Timer timer = new Timer();
    HttpServletRequest req = (HttpServletRequest) servletRequest;
    HttpServletResponse resp = (HttpServletResponse) servletResponse;
    DefaultSessionContextProvider contextProvider = FsPlugin.getDefault().sessionContextProvider;
    try {
        Request request = new io.milton.servlet.ServletRequest(req, servletRequest.getServletContext());
        Response response = new io.milton.servlet.ServletResponse(resp);
        threadRequest.set(request);
        threadResponse.set(response);
        Auth auth = request.getAuthorization();
        log.debug("Auth: " + auth);
        // map/create session context
        req.getSession(true);
        if (auth != null) {
            contextProvider.mapContext(auth.getUser(), true);
            log.debug("SessionContext: " + SessionContext.current());
        }
        httpManager.process(request, response);
        log.debug("Request: " + Request.Header.ACCEPT_ENCODING.code + ": " + request.getHeaders().get(Request.Header.ACCEPT_ENCODING.code) + " --> Response: " + Response.Header.CONTENT_ENCODING.code + ": " + response.getHeaders().get(Response.Header.CONTENT_ENCODING.code));
        log.debug("Response: " + response.getStatus());
    } finally {
        if (contextProvider.currentContext() != null) {
            contextProvider.unmapContext();
        }
        threadRequest.set(null);
        threadResponse.set(null);
        servletResponse.getOutputStream().flush();
        servletResponse.flushBuffer();
    }
    log.info("WebDAV request: " + timer.elapsedTime() + "ms");
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) HttpServletResponse(javax.servlet.http.HttpServletResponse) ServletResponse(javax.servlet.ServletResponse) Response(io.milton.http.Response) HttpServletRequest(javax.servlet.http.HttpServletRequest) ServletRequest(javax.servlet.ServletRequest) HttpServletResponse(javax.servlet.http.HttpServletResponse) ServletResponse(javax.servlet.ServletResponse) Timer(org.polymap.core.runtime.Timer) Auth(io.milton.http.Auth) HttpServletRequest(javax.servlet.http.HttpServletRequest) ServletRequest(javax.servlet.ServletRequest) Request(io.milton.http.Request) HttpServletResponse(javax.servlet.http.HttpServletResponse) DefaultSessionContextProvider(org.polymap.core.runtime.session.DefaultSessionContextProvider)

Example 2 with Auth

use of io.milton.http.Auth in project lobcder by skoulouzis.

the class ServletRequest method getAuthorization.

@Override
public Auth getAuthorization() {
    if (auth != null) {
        log.trace("using cached auth object");
        return auth;
    }
    String enc = getRequestHeader(Request.Header.AUTHORIZATION);
    if (enc == null) {
        return null;
    }
    if (enc.length() == 0) {
        log.trace("authorization header is not-null, but is empty");
        return null;
    }
    auth = new Auth(enc);
    if (log.isTraceEnabled()) {
        log.trace("creating new auth object {}", auth.getScheme());
    }
    return auth;
}
Also used : Auth(io.milton.http.Auth)

Example 3 with Auth

use of io.milton.http.Auth in project lobcder by skoulouzis.

the class BasicAuthHandler method authenticate.

@Override
public Object authenticate(Resource resource, Request request) {
    log.trace("authenticate");
    Auth auth = request.getAuthorization();
    Object o = resource.authenticate(auth.getUser(), auth.getPassword());
    log.trace("result: {}", o);
    return o;
}
Also used : Auth(io.milton.http.Auth)

Example 4 with Auth

use of io.milton.http.Auth in project lobcder by skoulouzis.

the class MiltonFtpFile method isReadable.

@Override
public boolean isReadable() {
    log.debug("isReadble");
    if (r == null || !(r instanceof GetableResource))
        return false;
    Auth auth = new Auth(user.getName(), user.getUser());
    FtpRequest request = new FtpRequest(Method.GET, auth, path.toString());
    return r.authorise(request, request.getMethod(), auth);
}
Also used : Auth(io.milton.http.Auth)

Example 5 with Auth

use of io.milton.http.Auth in project lobcder by skoulouzis.

the class MiltonFtpFile method isWritable.

/**
 * Check file write permission.
 */
@Override
public boolean isWritable() {
    try {
        log.debug("isWritable: " + getAbsolutePath());
        if (path.isRoot())
            return false;
        Auth auth = new Auth(user.getName(), user.getUser());
        FtpRequest request = new FtpRequest(Method.DELETE, auth, path.toString());
        if (r != null) {
            if (r instanceof ReplaceableResource) {
                return r.authorise(request, Method.PUT, auth);
            }
        }
        if (getParent() instanceof PutableResource) {
            return getParent().authorise(request, Method.PUT, auth);
        } else {
            return false;
        }
    } catch (NotAuthorizedException ex) {
        throw new RuntimeException(ex);
    } catch (BadRequestException ex) {
        throw new RuntimeException(ex);
    }
}
Also used : Auth(io.milton.http.Auth) BadRequestException(io.milton.http.exceptions.BadRequestException) NotAuthorizedException(io.milton.http.exceptions.NotAuthorizedException) ReplaceableResource(io.milton.resource.ReplaceableResource)

Aggregations

Auth (io.milton.http.Auth)13 DigestResource (io.milton.resource.DigestResource)2 Request (io.milton.http.Request)1 Response (io.milton.http.Response)1 BadRequestException (io.milton.http.exceptions.BadRequestException)1 NotAuthorizedException (io.milton.http.exceptions.NotAuthorizedException)1 ReplaceableResource (io.milton.resource.ReplaceableResource)1 ServletRequest (javax.servlet.ServletRequest)1 ServletResponse (javax.servlet.ServletResponse)1 HttpServletRequest (javax.servlet.http.HttpServletRequest)1 HttpServletResponse (javax.servlet.http.HttpServletResponse)1 Timer (org.polymap.core.runtime.Timer)1 DefaultSessionContextProvider (org.polymap.core.runtime.session.DefaultSessionContextProvider)1