Search in sources :

Example 1 with LoginResponse

use of com.pogeyan.cmis.api.messages.LoginResponse in project copper-cms by PogeyanOSS.

the class AkkaCmisBrowserBindingServlet method verifyLogin.

private void verifyLogin(HttpServletRequest request, String[] pathFragments, ActorSystem system, Action<Object> onSuccess, Action<Object> onError) {
    // forwarding callback after verifying login response object
    Action<BaseMessage> onLoginSuccess = (t) -> {
        LoginResponse lr = (LoginResponse) t.getMessageAsType(LoginResponse.class);
        if (lr.isSuccessfulLogin()) {
            // To test different users and different password on test
            // cases require to remove cache on 1 second
            /*
				 * if (Helpers.isTestMode()) {
				 * //RedissonCacheFactory.get().put("login." + userName,
				 * lr.getLoginDetails(), 5, TimeUnit.SECONDS); } else { // set
				 * in map cache for 30 mins expiry
				 * //RedissonCacheFactory.get().put("login." + userName,
				 * lr.getLoginDetails(), 30, TimeUnit.MINUTES); }
				 */
            onSuccess.apply(lr.getLoginDetails());
        } else {
            onError.apply(null);
        }
    };
    ActorRef genericActorRef = system.actorOf(Props.create(GenericActor.class, onLoginSuccess, onError));
    LoginRequest loginRequest = new LoginRequest();
    loginRequest.setHeaders(ServletHelpers.getHeadersInfo(request));
    if (pathFragments.length > 0) {
        loginRequest.setRepositoryId(pathFragments[0]);
    }
    BaseMessage loginMessage = BaseMessage.create("login", "authenticate", loginRequest);
    genericActorRef.tell(loginMessage, ActorRef.noSender());
/*
		 * String userName = callContextMap.get(BrowserConstants.USERNAME);
		 * Object loginSession = RedissonCacheFactory.get().get("login." +
		 * userName); if (loginSession == "") { } else {
		 * onSuccess.apply(loginSession); }
		 */
}
Also used : LoginRequest(com.pogeyan.cmis.api.messages.LoginRequest) LoginResponse(com.pogeyan.cmis.api.messages.LoginResponse) ServletException(javax.servlet.ServletException) CmisPermissionDeniedException(org.apache.chemistry.opencmis.commons.exceptions.CmisPermissionDeniedException) BaseMessage(com.pogeyan.cmis.api.BaseMessage) LoggerFactory(org.slf4j.LoggerFactory) IUserObject(com.pogeyan.cmis.api.auth.IUserObject) StringUtils(org.apache.commons.lang3.StringUtils) CmisBaseResponse(com.pogeyan.cmis.api.messages.CmisBaseResponse) ActorSelection(akka.actor.ActorSelection) AsyncContext(javax.servlet.AsyncContext) HttpServletRequest(javax.servlet.http.HttpServletRequest) CmisErrorResponse(com.pogeyan.cmis.api.messages.CmisErrorResponse) Action(com.pogeyan.cmis.api.Action) ActorRef(akka.actor.ActorRef) CmisUnauthorizedException(org.apache.chemistry.opencmis.commons.exceptions.CmisUnauthorizedException) GenericActor(com.pogeyan.cmis.api.GenericActor) QueryStringHttpServletRequestWrapper(com.pogeyan.cmis.browser.shared.QueryStringHttpServletRequestWrapper) UntypedActor(akka.actor.UntypedActor) Helpers(com.pogeyan.cmis.api.utils.Helpers) ContentStream(org.apache.chemistry.opencmis.commons.data.ContentStream) MimeHelper(org.apache.chemistry.opencmis.commons.impl.MimeHelper) OutputStream(java.io.OutputStream) ServletConfig(javax.servlet.ServletConfig) Logger(org.slf4j.Logger) HttpServlet(javax.servlet.http.HttpServlet) CmisNotSupportedException(org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException) MetricsInputs(com.pogeyan.cmis.api.utils.MetricsInputs) HttpServletResponse(javax.servlet.http.HttpServletResponse) IOException(java.io.IOException) QueryGetRequest(com.pogeyan.cmis.api.messages.QueryGetRequest) WebServlet(javax.servlet.annotation.WebServlet) PostFileResponse(com.pogeyan.cmis.api.messages.PostFileResponse) POSTHttpServletRequestWrapper(com.pogeyan.cmis.browser.shared.POSTHttpServletRequestWrapper) IOUtils(org.apache.chemistry.opencmis.commons.impl.IOUtils) ActorSystem(akka.actor.ActorSystem) HttpUtils(com.pogeyan.cmis.browser.shared.HttpUtils) MessageType(com.pogeyan.cmis.api.MessageType) UnsupportedEncodingException(java.io.UnsupportedEncodingException) Props(akka.actor.Props) InputStream(java.io.InputStream) ExceptionUtils(org.apache.commons.lang3.exception.ExceptionUtils) LoginResponse(com.pogeyan.cmis.api.messages.LoginResponse) BaseMessage(com.pogeyan.cmis.api.BaseMessage) ActorRef(akka.actor.ActorRef) GenericActor(com.pogeyan.cmis.api.GenericActor) LoginRequest(com.pogeyan.cmis.api.messages.LoginRequest)

Example 2 with LoginResponse

use of com.pogeyan.cmis.api.messages.LoginResponse in project copper-cms by PogeyanOSS.

the class LoginActor method authenticate.

private LoginResponse authenticate(LoginRequest t, HashMap<String, Object> baggage) {
    LoginResponse response = new LoginResponse();
    try {
        Map<String, String> loginSettings = RepositoryManagerFactory.getLoginDetails(t.getRepositoryId());
        if (LOG.isDebugEnabled()) {
            LOG.debug("Login settings for repositoryId: {}", loginSettings.toString());
        }
        IAuthService authService = LoginAuthServiceFactory.createAuthService(loginSettings);
        if (authService != null) {
            LoginRequestObject loginObject = new LoginRequestObject(t.getHeaders().get("authorization"), t.getRepositoryId());
            IUserObject result = authService.authenticate(loginObject);
            response.setSuccessfulLogin(result != null);
            response.setLoginDetails(result);
        } else {
            LOG.error("Login authenticate service not found for: {}", loginSettings.toString());
            response.setSuccessfulLogin(false);
        }
    } catch (Exception e) {
        LOG.error("Login authenticate error: {}", ExceptionUtils.getStackTrace(e));
        response.setSuccessfulLogin(false);
    }
    return response;
}
Also used : LoginResponse(com.pogeyan.cmis.api.messages.LoginResponse) LoginRequestObject(com.pogeyan.cmis.api.auth.LoginRequestObject) IAuthService(com.pogeyan.cmis.api.auth.IAuthService) IUserObject(com.pogeyan.cmis.api.auth.IUserObject)

Aggregations

IUserObject (com.pogeyan.cmis.api.auth.IUserObject)2 LoginResponse (com.pogeyan.cmis.api.messages.LoginResponse)2 ActorRef (akka.actor.ActorRef)1 ActorSelection (akka.actor.ActorSelection)1 ActorSystem (akka.actor.ActorSystem)1 Props (akka.actor.Props)1 UntypedActor (akka.actor.UntypedActor)1 Action (com.pogeyan.cmis.api.Action)1 BaseMessage (com.pogeyan.cmis.api.BaseMessage)1 GenericActor (com.pogeyan.cmis.api.GenericActor)1 MessageType (com.pogeyan.cmis.api.MessageType)1 IAuthService (com.pogeyan.cmis.api.auth.IAuthService)1 LoginRequestObject (com.pogeyan.cmis.api.auth.LoginRequestObject)1 CmisBaseResponse (com.pogeyan.cmis.api.messages.CmisBaseResponse)1 CmisErrorResponse (com.pogeyan.cmis.api.messages.CmisErrorResponse)1 LoginRequest (com.pogeyan.cmis.api.messages.LoginRequest)1 PostFileResponse (com.pogeyan.cmis.api.messages.PostFileResponse)1 QueryGetRequest (com.pogeyan.cmis.api.messages.QueryGetRequest)1 Helpers (com.pogeyan.cmis.api.utils.Helpers)1 MetricsInputs (com.pogeyan.cmis.api.utils.MetricsInputs)1