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