use of com.pogeyan.cmis.api.messages.LoginRequest 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); }
*/
}
Aggregations