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");
}
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;
}
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;
}
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);
}
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);
}
}
Aggregations